次のボーンシェルスクリプトのスナップショットに出くわしました:
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[@]}))
#hosts[@] から計算された j mod 何かのようですが、ここで「#」と「@」は何を意味しますか? ありがとう。