【发布时间】:2013-02-11 15:16:39
【问题描述】:
我想写一些类似的东西
EXEC="sudo su -m root -c \"java Something\""
$EXEC &
但我收到以下错误:
Something": -c: line 0: unexpected EOF while looking for matching `"'
Something": -c: line 1: syntax error: unexpected end of file
如果我在它执行的命令行上编写命令。如果我将它存储在一个变量中并试图推断它 - 它不会。为什么?
【问题讨论】:
-
试试这个:
for w in $EXEC ; do echo $w; done你会看到的。 -
@Mat:不是同一个问题 - 问题是 \' 在 '...' 中没有意义,而 \" 在 "..." 中确实有意义。谢谢,但我知道如何使用搜索。
-
@n.m.我不明白你的意思。 for-in 只是在空格上拆分字符串,而不考虑引号。如果我在命令行上编写命令,它就会执行。编写该命令与将其存储在变量中并尝试推断它有什么区别?
-
不同之处在于参数扩展的结果只在空格处进行分词(或IFS,见参考手册3.5.7)。通常的复杂标记化发生在从输入文件读取输入时。