Linux命令中的$()和${}的区别

文章目录

$()

$() 小括号里面是 Linux 命令,作用就是执行里面的命令后返回执行的结果;和 ``(反引号)作用一样。

$() 与 ``(反引号)都是用来作命令替换的。命令替换与变量替换差不多,都是用来重组命令行的,先完成引号里的命令行,然后将其结果替换出来,再重组成新的命令行。

例如:

todaydate=$(date +%Y%m%d);

意思是执行 date 命令,返回执行结果给变量 todaydate,也可以写为:

todaydate=`date +%Y%m%d`;

比如:

ls $(pwd)
Applications         Desktop              Downloads            Movies               Pictures             cookiefile.json      to
Creative Cloud Files Documents            Library              Music                Public               statistics.json

其实是要执行 () 里面的命令 pwd,然后用执行的结果替换 $() 内容。

等价于:

ls `pwd`
Applications         Desktop              Downloads            Movies               Pictures             cookiefile.json      to
Creative Cloud Files Documents            Library              Music                Public               statistics.json

${}

${} 变量替换,大括号里面是变量,取变量的值替换 ${}。一般情况下,$var${var} 是没有区别的,但是用 ${} 会比较精确的界定变量名称的范围

例如:大括号里面数组变量

$ A = (hello linux shell) # 定义一个数组变量
$ echo ${A[0]} # 取数组的第一个元素的值

则会输出 hello。

猜你喜欢

转载自blog.csdn.net/liaowenxiong/article/details/121056826#comments_21645436