如何在shell脚本中同时运行两个命令?

时间:2013-10-19 20:31:47

标签: shell sass jekyll

我正在努力让shell脚本运行jeykll -w servesass --watch style.scss:style.css,所以每次我想在本地开发时都不必担心。所以我制作了一个shell脚本,但很明显,如果我先把jekyll命令放进去,它就不会运行sass,直到jekyll完成。那么如何一次运行两个命令呢?我是否必须发出命令才能在终端中打开另一个选项卡然后运行sass?必须有更好的方法来做到这一点。

1 个答案:

答案 0 :(得分:4)

您正在寻找分叉进程,以便当前shell不等待我假设的命令。

jeykll -w serve && sass --watch style.scss:style.css

以上将等待第一个命令以非错误状态

完成
jeykll -w serve ; sass --watch style.scss:style.css

以上将等待第一个命令完成并忽略退出状态。

因此,如果我理解正确,您希望多个命令同时运行。为此,你使用&命令参考结束时的运算符。

The Bash& (&符号)是用于分叉进程的内置控件操作符。在Bash手册页中,“如果命令由控制操作符&终止,则shell在子shell中在后台执行命令”。

jeykll -w serve &
sass --watch style.scss:style.css &