開始每個我所有的服務器在自己的標籤,我有幾個服務器,我試圖通過執行一個bash腳本來運行。我不知道在bash的這一切是我的腳本,而是通過Google檢索我砍死這個共同的第一次嘗試,它的工作:使用bash
#!/bin/bash
gnome-terminal \
--tab -e \
'sh -c "cd /path1 && ./server1; exec bash"' \
--tab -e \
'sh -c "cd /path2 && ./server2; exec bash"' \
--tab -e \
'sh -c "cd /path3 && ./server3; exec bash"' \
--tab -e \
'sh -c "cd /path4 && java -jar javaserver; exec bash"'
現在我運行的第一個Python服務器中的virtualenv這樣我希望能夠給一個命令行參數來決定哪些VIRTUALENV加載(或使用默認值),所以我一直是這樣的:
#!/bin/bash
if [ -z "$1" ]
then
virtualenv="default"
else
virtualenv=$1
fi
gnome-terminal \
--tab -e \
'sh -c "cd /path1 && source ../$virtualenv/bin/activate && ./server1; exec bash"' \
--tab -e \
'sh -c "cd /path2 && ./server2; exec bash"' \
--tab -e \
'sh -c "cd /path3 && ./server3; exec bash"' \
--tab -e \
'sh -c "cd /path4 && java -jar javaserver; exec bash"'
因爲我做sh -c
我想我中號用sh而不是bash的我的bash腳本內(bash -c
不工作),這樣的「源」運行這些命令是未知的,也是不理解變量$virtualenv
可能出於同樣的原因。
顯然你可以用[email protected]
來推翻參數,但我無論如何都會這樣做,我認爲我在第一時間做的都是錯誤的。我並不真的需要cd到路徑要麼不知道爲什麼我這樣做,可以簡化腳本。
我從別人誰知道居然在這樣做的正確方法的bash欣賞手。謝謝!
這是AppleScript顯然,所以不適用於我,但我可以看到是否有類似的方法。可能是通過變量傳遞的'tell'命令的bash選項。 – 2014-09-14 16:01:44