我目前在从 shell 变量执行命令时遇到问题。
一般来说,以下工作按预期工作:
COMMAND="echo A"
echo $COMMAND
$COMMAND
产生:
echo A
A
但如果我这样做
COMMAND="su aUser -s /bin/bash -c 'echo A'"
echo $COMMAND
$COMMAND
我明白了
su aUser -s /bin/bash -c 'echo A'
Password:
A': -c: line 0: unexpected EOF while looking for matching `''
A': -c: line 1: syntax error: unexpected end of file
如果我进入该行
su aUser -s /bin/bash -c 'echo A'
直接它按预期工作。
看来我假设 $COMMAND 等于直接输入内容作为命令是错误的。
问题
1)有谁知道我如何从变量运行命令?
2)究竟有什么区别
COMMAND="command"
$COMMAND
和
command
?