[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'
也可以看看:
- POSIX 文档
nice
。 man nice
在您的系统上。