Bash
如何將變數傳遞給 gnome-terminal 命令
我正在嘗試使用變數來構造
--command
arggnome-terminal
。我的 shell 腳本如下所示:
buildId="aa-bb-cc" versionCode="123456" daily="daily" gnome-terminal -e 'sh -c "while true; do python acra.py $versionCode $buildId 0 $daily sleep 600 # 10 mins done"'
但是當我執行這個腳本時,新終端打開但它無法辨識這些變數,我只
sys.argv = ['acra.py', '0']
在我的 python 腳本中接收,所以我猜 cmd 的執行就像:python acra.py 0
那麼在這種情況下如何使用變數呢?
假設其
gnome-terminal
行為類似於xterm
:gnome-terminal -e sh -c 'some commands here' sh "$variable1" "$variable2" "etc."
命令行末尾的字元串將在
sh -c
腳本中以$1
、$2
、$3
等形式出現。腳本的第一個參數 stringsh
將被放置在$0
shell 中並在錯誤消息中使用。在你的情況下:
#!/bin/sh buildId="aa-bb-cc" versionCode="123456" daily="daily" gnome-terminal -e sh -c ' while true; do python acra.py "$1" "$2" 0 "$3" sleep 600 done' sh "$versionCode" "$buildId" "$daily"
這假定
acra.py
腳本在目前工作目錄中可用。