インラインシェルスクリプトに変数を送信するには?

インラインシェルスクリプトに変数を送信するには?

次のスクリプトを実行します。

VAR="Test"
sh -c 'echo "Hello $VAR"'

しかし、私は次のようになります。

# ./test.sh
Hello

VARを使用して生成されたシェルにスクリプトの変数をどのように送信しますかsh -c '...'

ベストアンサー1

環境変数に変換するか、exportコマンドに直接渡します。

VAR="Test" sh -c 'echo "Hello $VAR"'

VAR="Test"
export VAR
sh -c 'echo "Hello $VAR"'

補間を可能にするために、シェルコードの周りに二重引用符を使用しないでください。これにより、次のようにコマンド注入の脆弱性が発生する可能性があります。

sh -c " echo 'Hello $VAR' "

$VAR次の内容を含めるときに呼び出される場合';reboot #

おすすめ記事