次のスクリプトを実行します。
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 #