このコマンドの出力は空です。
su user -c "ABC=abc;echo $ABC"
入力コマンドで変数を定義するにはどうすればよいですか?
引用符を一重引用符に変更します。二重引用符を使用すると、変数がまだ設定されていない現在の環境で変数を置き換えることができます。違いを確認するには、お使いのバージョンを次のバージョン$USER
と比較してみてください。
su user -c 'ABC=abc; echo $ABC; echo $USER'
Bourne シェルバリアントを使用する場合:
ABC=abc su user -c 'echo $ABC'
そうでない場合は、env を使用します。
env ABC=abc su user -c 'echo $ABC'