現在、シェル変数からコマンドを実行する際に問題が発生しています。
一般的に、以下は期待どおりに機能します。
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
?