This question already has answers here:
Return value in a Bash function
(9个答案)
Shell function does not return values greater than 255
(2个答案)
我写了下面的bash脚本:
我的想法是在集群上提交作业。如果同时运行的作业超过
该代码适用于
(9个答案)
Shell function does not return values greater than 255
(2个答案)
我写了下面的bash脚本:
function getqsubnumber {
# Return how many simulations ($qsubnumber) are currently running
qsubnumber=`qstat | grep p00 | wc -l`
return $qsubnumber
}
getqsubnumber
qs=$?
if [ $qs -le $X ]
then
echo 'Running one more simulation'
$cmd # submit one more job to the cluster
else
echo 'Too many simulations running ... Sleeping for 2 min'
sleep 120
我的想法是在集群上提交作业。如果同时运行的作业超过
X
个,我想等待2分钟。该代码适用于
X=50
和X=200
。不知什么原因,它不适用于X=400
。知道为什么吗?脚本从不等待2分钟,它会继续提交作业。 最佳答案
unix进程的返回值(shell函数的作用类似于一个)只能在单个字节的范围内,即0…255(在某些上下文中,范围是-128…+127)。
为了返回更大范围的值,我建议使用stdout作为通道来提供结果:
function getqsubnumber {
# Return how many simulations ($qsubnumber) are currently running
qstat | grep p00 | wc -l
}
qs=$(getqsubnumber)
关于linux - Bash函数无法返回大量数字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42567714/
10-16 23:49