Shell-Script
如何將變數發送到內聯 shell 腳本?
我執行以下腳本:
VAR="Test" sh -c 'echo "Hello $VAR"'
但我得到:
# ./test.sh Hello
如何將
VAR
腳本的變數發送到使用創建的 shellsh -c '...'
?
要麼使用
export
將其轉換為環境變數,要麼直接將其傳遞給命令。VAR="Test" sh -c 'echo "Hello $VAR"' VAR="Test" export VAR sh -c 'echo "Hello $VAR"'
避免在 shell 程式碼周圍使用雙引號以允許插值,因為這會引入命令注入漏洞,例如:
sh -c " echo '你好 $VAR' "
$VAR
如果呼叫時包含類似的內容,則會導致重新啟動';reboot #
sh -c
這是將變數傳遞給(作為位置參數)的另一種方法:{ VAR="world" VAR2='!' sh -c 'echo "Hello ${0}${1}"' "$VAR" "$VAR2" }