1から50までの数字を印刷してください

1から50までの数字を印刷してください
x=1
while [ $x -le 50 ]
do
    echo $x
    $x=(($x + 1))
done

上記のコードを書きました。これは多くのプログラミング言語で簡単な作業のように見えますが、私にはこのエラーが発生しました。

solution.sh: line 5: syntax error near unexpected token `('
solution.sh: line 5: `    $x=(($x + 1))'

Bashでエラーをデバッグする方法。 IDEはありますか?

ベストアンサー1

シェルは(良い)プログラミング言語ではなく、(何よりも)コマンドラインソルバーです。計算するには、echoループ内およびコマンドの代わりにcountコマンドを使用します。[

たとえば、GNUシステムにはseqこれらのコマンドがあります。代替方法は次awkbcとおりです。

seq 50
echo 'for (i=1; i<=50; i++) i' | bc
awk 'BEGIN {for (i=1; i<= 50; i++) print i}'

シェルでループを使用している場合は、おそらく間違った方法で実行しています。

おすすめ記事