【发布时间】:2017-03-21 22:37:22
【问题描述】:
我有一个运行一些作业的 bash 脚本。有时我希望能够使用nice 运行这些作业,以降低它们在服务器上的优先级。
例如,如果我的可执行文件是a.out,我可以从终端nice a.out 运行以降低作业优先级。
在我的 bash 脚本中,我有一个变量 NICE。我做了以下两件事之一:
# either nice is set
NICE="nice"
# or it is left unset
NICE=""
然后我使用
运行我的工作"$NICE$ ./a.out
稍后在脚本中。
这在 NICE="nice" 时有效,但在 NICE 设置为 NICE="" 时无效。
解决这个问题的一种方法是使用 if 语句:
if [ "$NICE" == "nice" ]
then
nice ./a.out
else
./a.out
fi
但这变成了 5 或 6 行代码,而不仅仅是一行代码。
是否有可能完成我尝试使用NICE 作为变量来启动可执行文件的功能?
【问题讨论】:
-
去掉引号:
$NICE ./a.out -
或者简单地将
#renice -10 $$放在脚本的开头,这样您就可以随时删除结尾的#。 -
我怀疑
"$NICE$ ./a.out“有效”。
标签: bash scheduling jobs nice