COMMAND
bash 中是否有一种方法可以正确使用命令替换(` ` 或)的输出$(COMMAND)
作为另一个程序的参数?
例子:
% touch -- safe-name -name-with-dash-prefix "name with space" \
'name-with-double-quote"' "name-with-single-quote'" \
'name-with-backslash\'
这都不是:
% ls -l `ls`
% ls -l $(ls)
也不是这个:
% ls -l "`ls`"
% ls -l "$(ls)"
对于所有示例名称,可以正确地将命令替换的输出作为参数重新提供。如果没有双引号,带引号的名称可以,但带空格的名称不行。使用双引号时,名称中带有空格是可以的,但多个名称会连接在一起。
注意:请将讨论限制在命令替换(即没有管道、mapfile 或 xargs)。