我遇到了以下 bourne shell script snanshot:
hosts=( $(cat $TOP/rhost))
j=0
for k in {1..20}
do
host=${hosts[$j]}
su user$k -c "/usr/bin/rsh $host $TOP/test.sh $JOBNUM $QUEUE $TIME $TOP $LSF_ENVDIR" &
j=`expr $j + 1`
j=$(($j%${#hosts[@]}))
done
一般来说,我知道这个脚本会迭代多次以在主机中的每个主机上执行 test.sh。但我不知道这条线是做什么的:
j=$(($j%${#hosts[@]}))
似乎 j mod 一些东西,它是从 #hosts[@] 计算出来的,这里的“#”和“@”是什么意思?谢谢。