【发布时间】:2014-10-03 21:18:36
【问题描述】:
我正在尝试执行以下命令:
mkdir 'my dir'
CMD="ls 'my dir'"
RESULT=$($CMD)
这会导致:
ls: 'my: No such file or directory
ls: dir': No such file or directory
在第二个命令之前使用“set -x”会显示实际发出的命令是:
++ ls ''\''my' 'dir'\'''
这显然是从我实际尝试做的事情中抽象出来的;此代码本身没有任何用途。但我的问题是,为什么 bash 会像这样标记带引号的字符串,我怎样才能让它停止?
【问题讨论】:
-
参见 BashFAQ #50:mywiki.wooledge.org/BashFAQ/050
-
谢谢,很有帮助。
-
另见BashFAQ #48。正如 GreyCat 所说,“eval”是“evil”的常见拼写错误。 :)
标签: bash