我有一个脚本:
ACTION="build" env -i exec ./makelib.sh Release "${ACTION}" env -i exec ./makelib.sh Debug "${ACTION}"
第二个exec不执行。 为什么,我该如何执行它?
exec将用你传入的命令的内容replace整个进程 – 在这种情况下,makelib.sh。 查看linux执行函数的手册页 – 深入解释。
我认为这是一个shell脚本; 如果您希望脚本简单地按顺序(一个接一个地)运行其他脚本,则可以使用:
ACTION="build" env -i ./makelib.sh Release "${ACTION}" ./makelib.sh Debug "${ACTION}"
这将运行./makelib.sh Release "${ACTION}" ; 完成后,它将运行./makelib.sh Debug "${ACTION}" 。 如果您希望两个命令并行(同时)运行,则可以使用&来后台进程。
ACTION="build" env -i ./makelib.sh Release "${ACTION}" & ./makelib.sh Debug "${ACTION}" &
请记住,这两个进程的背景意味着你将有两个进程同时运行(和输出!)。 所以如果你有日志logging输出,至less可以说你的屏幕会变得杂乱无章。
希望这可以帮助!
exec将通过传递的命令replace当前的shell。 如果您希望脚本继续,请删除exec语句。
如果你希望它在后台运行,那么在行尾添加“&”字符,或者如果你希望第二个字符在第一个成功的情况下有条件,那么在第一个和第二个语句之间加上“&&”?
(我的shell-fu很弱,所以我很想听听为什么这可能是错误的,为了教育目的。)