На этот вопрос уже есть ответ здесь:
В настоящее время у меня проблемы с выполнением команды из переменной оболочки.
В общем, следующее работает так, как ожидалось:
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
?