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