我想写点像
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
如果我在命令行上写命令就会执行。如果我把它存储在一个变量中并试图推断它 - 它没有。为什么呢?
答案 0 :(得分:0)
试试这个:
exec="ls -l \"/a b c\""
$exec
你会看到类似的东西:
ls: cannot access "/a: No such file or directory
ls: cannot access b: No such file or directory
ls: cannot access c": No such file or directory
显示问题的确切位置 - 即 - 在分词后完成变量的扩展。
要使其正常工作,您可以使用eval:
=$ eval "$exec"
ls: cannot access /a b c: No such file or directory
甚至:
=$ sh -c "$exec"
或者更好的是,不要让这些命令运行。不确定它的目的是什么,但考虑避免在变量中构建完整的命令行。