[英]bash scripts execution in different terminals
我有 bash 腳本,每次我想開始我的項目時都會從新終端執行
celery.sh
activate () {
. /Users/oleg/Desktop/auth/venv/bin/activate
}
activate
cd projectname
celery -A projectname worker -l info
flower.sh
activate () {
. /Users/oleg/Desktop/auth/venv/bin/activate
}
activate
cd projectname
celery -A projectname flower --port=5555
start.sh
activate () {
. /Users/oleg/Desktop/auth/venv/bin/activate
}
activate
cd projectname
python manage.py runserver 0.0.0.0:8000
這個腳本在我的本地機器上使用,我在new terminal
中使用3 different commands
execute
它們,每個命令
./celery.sh
./flower.sh
./start.sh
我覺得每次都被迫打開這 3 個終端很無聊,而且是redundant
的。
My goal
是創建一個腳本./ultimatestart.sh
它將啟動all of this three scripts
,每個腳本都應該opened in its personal terminal
答案更新,感謝 Olaf Kock,我找到了適用於我的 MacOs 和 zsh 終端的解決方案
我有兩個選項,第一個將啟動這三個腳本 celery.sh、flower.sh、start.sh
osascript -e 'tell app "Terminal" to do script "cd /Users/oleg/Desktop/auth &&
./celery.sh"'
osascript -e 'tell app "Terminal" to do script "cd /Users/oleg/Desktop/auth &&
./start.sh"'
osascript -e 'tell app "Terminal" to do script "cd /Users/oleg/Desktop/auth &&
./flower.sh"'
我也發現它是redundant
的,因為現在, i have 4 scripts
,並且通過這個更新,我可以從one script
啟動所有這 3 個終端
ultimatestarter.sh
osascript -e 'tell app "Terminal" to do script "activate () {
. /Users/oleg/Desktop/auth/venv/bin/activate
}
activate
cd /Users/oleg/Desktop/auth/projectname
celery -A projectname worker -l info"'
osascript -e 'tell app "Terminal" to do script "activate () {
. /Users/oleg/Desktop/auth/venv/bin/activate
}
activate
cd /Users/oleg/Desktop/auth/projectname
celery -A projectname flower --port=5555"'
osascript -e 'tell app "Terminal" to do script "activate () {
. /Users/oleg/Desktop/auth/venv/bin/activate
}
activate
cd /Users/oleg/Desktop/auth/projectname
python manage.py runserver 0.0.0.0:8000"'
&
)對於 xterm,這可能類似於
xterm -e /bin/bash -ls -c "./celery.sh" &
xterm -e /bin/bash -ls -c "./flower.sh" &
xterm -e /bin/bash -ls -c "./start.sh" &
如有必要,請pause
噴灑。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.