“”和()反引号在shell脚本中有独特的作用,凡是被反引号包括的内容shell会先执行该命令,再将该命令的输出结果代换到当前命令行中。所以反引号的作用是命令替换。()则是算数代换,在shell脚本中,被双括号括起来的算数命令可以被替换成算术结果。
$(())中只能用+ - * / %运算符进行算数运算,而且只能做整数运算。
`command`:反引号引起来的是一条命令;
eg:DATE=`date`
echo $DATE
运行原理:对于` `是shell先将date命令,然后将输出结果代换到命令行上;
调研eval命令
(1)eval命令将会首先扫描命令行进行所有的替换,然后再执行命令。该命令使用于那些一次扫描无法实现其功能的变量。该命令对变量进行两次扫描。这些需要进行两次扫描的变量有时候被称为复杂变量。
(2)eval也可以用于回显简单变量,不一定是复杂变量。
NAME=ZONE
eval echo NAME等价于echo NAME
(3)eval命令还可以显示出传递给脚本的最后一个参数。
(4)eval命令可以给一个变量一个值
eval “NAME={VALUE}
如何运行shell脚本
shell脚本的后缀一般是.sh,但是因为shell是非编译的解释型语言,所以执行时和别的C/C++有所不同。
第一种:chmod +x test.sh 给脚本加上执行权限
./test.sh
第二种:/bin/bash test.sh