26th
Last updated
Was this helpful?
Last updated
Was this helpful?
Linux 命令行的命令扩展
在 shell 中可以将命令 A 的输出作为命令 B 的参数,命令 A 需要放到「$()」的括号内,比如这条命令:ll $(which cp),将命令 which cp 的输出作为参数传递给了 ll 命令,这样我们就可以得到 cp 这个程序的相关信息,而不用关心 cp 程序的文件到底放在哪个目录下。执行效果如图一所示。
命令扩展也可以执行较复杂的管道命令。比如这条命令:file $(ls -d /usr/bin/* | grep zip),grep 的输出变成了 file 的参数。如图二所示。
bash 还支持另外一种语法,就是用反引号「`」代替 「${}」,如图三所示。但是不建议在命令扩展中使用反引号,尤其是在 shell 脚本中用到命令扩展的时候。因为反引号和单引号「'」比较相似,容易混淆,给维护 shell 脚本造成困难。