反引号内的分词
Word splitting within backticks
脚本中第 2 行和第 4 行的区别是什么("foo bar"(不带引号)文件夹存在):
FOOBAR="foo bar"
echo `ls -la "$FOOBAR"`
args="-la \"$FOOBAR\""
echo `ls $args`
输出:
total 0 drwxr-xr-x 2 tervlad LD\Domain Users 68 15 ноя 11:47 . drwxr-xr-x 7 tervlad LD\Domain Users 238 16 ноя 18:01 ..
ls: "foo: No such file or directory
ls: bar": No such file or directory
如何让第 4 行正常工作?
$FOOBAR
在对 args 的赋值中被扩展。此外,引号在 $
扩展之前被解释,因此引号是扩展字符串的文字部分。
就用一个数组。
args=( "-la" "$FOOBAR" )
ls "${args[@]}"
脚本中第 2 行和第 4 行的区别是什么("foo bar"(不带引号)文件夹存在):
FOOBAR="foo bar"
echo `ls -la "$FOOBAR"`
args="-la \"$FOOBAR\""
echo `ls $args`
输出:
total 0 drwxr-xr-x 2 tervlad LD\Domain Users 68 15 ноя 11:47 . drwxr-xr-x 7 tervlad LD\Domain Users 238 16 ноя 18:01 ..
ls: "foo: No such file or directory
ls: bar": No such file or directory
如何让第 4 行正常工作?
$FOOBAR
在对 args 的赋值中被扩展。此外,引号在 $
扩展之前被解释,因此引号是扩展字符串的文字部分。
就用一个数组。
args=( "-la" "$FOOBAR" )
ls "${args[@]}"