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