在我的Desktop/src/
目录中,我有一些我希望在一系列中运行的shell脚本,一些必须在第一个完成运行后运行,所有命令必须在新的终端窗口上运行。我正在使用Mac OS X.
到目前为止,我已尝试过以下代码
osascript<<EOF
tell application "System Events"
tell process "Terminal" to keystroke "n" using command down
end
tell application "Terminal"
activate
do script with command "cd Desktop/src/ && sh startRM1.sh"
end tell
tell application "Terminal"
activate
do script with command "cd Desktop/src/ && sh startRM2.sh"
end tell
tell application "Terminal"
activate
do script with command "cd Desktop/src/ && sh startRM3.sh"
end tell
EOF
问题是startRM1.sh需要一点时间才能启动,startRM2.sh,startRM3.sh会立即启动并崩溃,因为他们必须等待startRM1.sh完成 所有这三个都必须从新窗口开始。
编辑:startRM1.sh是一个继续运行的服务器;因此控制永远不会进入第二步。
使用以下解决了问题osascript<<EOF
tell application "System Events"
tell process "Terminal" to keystroke "n" using command down
end
tell application "Terminal"
activate
do script with command "cd Desktop/src/ && sh startRM1.sh" in window 1
end tell
tell application "Terminal"
activate
do script with command "sleep 5 && cd Desktop/src/ && sh startRM2.sh"
end tell
tell application "Terminal"
activate
do script with command "sleep 5 && cd Desktop/src/ && sh startRM3.sh"
end tell
EOF
答案 0 :(得分:0)
创建一个作为起点的shellcript。
您可以创建一个可以调用的.sh文件:
source mynewShell.sh
并且在那里,它将包含所有其他文件,在您需要的订单中调用,以及任何配置数据等