2

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

4

1 回答 1

4

您正在寻找分叉该进程,因此当前 shell 不会等待我假设的命令。

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

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

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

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

因此,如果我理解正确,您希望多个命令同时运行。为此,您在命令引用的末尾使用 & 运算符。

Bash & (&) 是一个用于分叉进程的内置控制运算符。在 Bash 手册页中,“如果命令被控制运算符 & 终止,则 shell 在子 shell 的后台执行命令”。

jeykll -w serve &
sass --watch style.scss:style.css & 
于 2013-10-19T20:44:16.797 回答