【发布时间】:2016-11-16 15:46:49
【问题描述】:
脚本中的第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 的赋值中展开。此外,引号在$扩展之前被解释,因此引号是扩展字符串的文字部分。 -
BashFAQ #50 直接就位。
-
...反引号与它没有任何关系。您将完全与
ls $args具有相同的行为,且不涉及反引号。
标签: bash shell quoting backticks