alo*_*oha 0 linux bash shell terminal cluster-computing
我写了以下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
Run Code Online (Sandbox Code Playgroud)
我的想法是我在集群上提交工作.如果有多个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)
Run Code Online (Sandbox Code Playgroud)