为什么我不能“nice”一个命令组?

为什么我不能“nice”一个命令组?
[fakename]$ nice yes a>/dev/null &
[1] 26475
[fakename]$ ps -p 26475 -o nice,pid
 NI   PID
 10 26475
[fakename]$ nice { yes a>/dev/null; } &
-bash: syntax error near unexpected token `}'

有没有办法进入nice指挥组?

我知道一个:要正常执行命令组,请通过附加一个&符号将其放在后台,然后renice在命令组上使用。但是,有没有办法可以完成同样的事情nice

另外,为什么它会给我这个错误?是否因为nice不是 shell 关键字,因此必须遵循标准的 bash 参数解析规则?

答案1

您喜欢使用的方式nice要求它nice是 shell 中的保留字,但它只是一个普通命令,需要另一个简单命令作为参数。

只有在几个 shell 执行您希望看到的操作的情况下。该time命令在某些 shell 中也作为保留字存在。

答案2

nice实用程序将另一个作为其操作数公用事业(可能有参数)。它不需要子 shell 或复合命令。

要使用 运行复合命令nice,请使用子 shell:

nice sh -c 'mycommand; somethingelse; while [ something ]; do ...; done'

也可以看看:

相关内容