符号 “ 和$()都是用作命令替换的
运行结果
区别
1, 反引号很容易与单引号搞混乱,对初学者来说。有时在一些奇怪的字形显示中,两种符号是一模一样的(直竖两点)。用$()可以更好的避免这种混乱
2, 在多层次的复合替换中,反引号须要额外的跳脱( /)处理,而 $( ) 则比较直观。例如:
com1
com2`` 你这么写就是错的。需要
com1/`com2/“如果有多个命令嵌套就比较复杂了。而用
()就比较直观比如
(com1
(com2
(com3)))
如果是多个命令的话可以用;隔开。比如{ var1=test1;var2=test2;echovar1>a;echo $var2;}
不过, ()并不是没有毙端的…反引号基本上可用在全部的unixshell中使用,若写成shellscript,其移植性比较高。而 () 并不见的每一种 shell 都能使用.
eval命令
功能说明:告知shell取出eval的参数,重新运算求出参数的内容。
语 法:eval [参数]
补充说明:eval可读取一连串的参数,然后再依参数本身的特性来执行。
参 数:参数不限数目,彼此之间用分号分开。