次の問題に対する解決策が必要です。
次の形式で数値を印刷するシェルプログラムを作成します。 使用 しかし、または~までループで次のプログラムを実行します。
1 2 3 4
2 3 4 5
3 4 5 6
4 5 6 7
5 6 7 8
6 7 8 9
私が書いたスクリプトはループまで。私が間違えたことがあれば訂正してください。
#!/bin/bash
w=1
until [ $w -le 9 ] ; do
until [ $w -eq 4 ] ; do
w=`expr $w + 1`
echo “$w”
done
echo “$w”
done
ベストアンサー1
2つのループは必要ないので、bash
+中括弧拡張で十分です。
i=0; width=4; max=9
until [ $((i++)) -ge $((max-width+1)) ]; do
eval echo {$i..$((i+width-1))}
done
幅は0より大きく、開始点(負の値を含む)に対して機能する必要があります。
2つのループを使用したい場合は、中括弧拡張を使用して内部行を再構築してください。