bashでこれを行うと、gshuf -e $(seq 1 10)
1から10までの数字がランダムな順序で印刷されます。
しかし、これを行うと:
a=$(shuf -e $(seq 1 10))
for i in "${a[@]}"
do
echo $i
echo "next"
done
10個の数字をすべて印刷してから、「next」を印刷します。
shuf(またはos xのgshuf)出力を繰り返すには?変数がa
文字列のように分割できます。ところでこれはちょっと混乱しているようです。 shuf出力を配列にする方法は?
ベストアンサー1
スカラー割り当てを使用しています。配列を使用するか
a=( $(shuf -e $(seq 1 10)) )
for i in "${a[@]}"
do
echo $i
echo "next"
done
または、シェルにスカラーを分割させるようにしてください。
a=$(shuf -e $(seq 1 10))
for i in ${a}
do
echo $i
echo "next"
done