如果我想从批处理脚本中调用另一个批处理脚本,我可以使用
CALL File.bat
暂停当前批处理文件的执行并等待 CALLed 脚本完成。
我可以用
START File.bat
如果我希望它们同时运行。
如何在 shell 脚本中实现这种行为?
如果我想从批处理脚本中调用另一个批处理脚本,我可以使用
CALL File.bat
暂停当前批处理文件的执行并等待 CALLed 脚本完成。
我可以用
START File.bat
如果我希望它们同时运行。
如何在 shell 脚本中实现这种行为?
通过“shell”,我假设您的意思是 *NIX sh。
要执行另一个脚本并等待它完成,请执行
sh file.sh
要在后台启动它,请执行
(sh file.sh) &
如果你想等待:
#!/bin/bash
# do some stuff
/path/to/other/script
# do other stuff
同时运行它(即“在后台”):
#!/bin/bash
# do some stuff
/path/to/other/script &
# do other stuff, then optionally:
wait
# this will wait for all background jobs to finish
如果您想提供特定的输入和/或捕获输出或错误,还有其他方法,您应该考虑有关后台进程的输入和输出重定向的某些事情,但这是基础。
对于 bash(和其他 Bourne shell 兼容的 shell):
CALL
;调用另一个脚本或程序会同步执行它。someprog.sh
&
到命令以异步运行它;请注意,如果程序在后台尝试从标准输入读取,它将停止。someprog.sh &