2017-12-08 127 views
0

私はBashスクリプトを作成しています。私はそれを実行すると、私は理解できない構文エラーを取得します。ここで"予期しないトークン` do 'の近くで構文エラーが発生しました。

私のスクリプト:

ここでエラー
#!/bin/bash 
i=1 
while [ $i -le "6" ] 
do 
j=1 
i=`expr $i +1` 
echo \ 
while [ $j -le "$i" ] 
    do 
    echo $i 
    j=`expr $j+1` 
done 
done 
echo \enter code here 

./test.sh: line 9: syntax error near unexpected token `do' 
./test.sh: line 9: `do' 

私が間違っているのか?

+0

は本当にそこecho' '後にバックスラッシュですか?その場合は改行をエスケープするため、削除する必要があります。 –

答えて

2

ライン8からバックスラッシュを削除するのは、エスケープ文字であるため(バックスラッシュの後に改行をエスケープするため)、最初のことです。最後の行では、eが続きますので、バックスラッシュにはその影響はありません。

また、exprの式では、+記号をスペースで囲む必要があります。私はまた、jを増やすための第2の方法を示します。

#!/bin/bash 
i=1 
while [ $i -le "6" ] 
do 
j=1 
((i++)) 
echo something-else 
while [ $j -le "$i" ] 
    do 
    echo $i 
    ((j++)) 
done 
done 

出力:

$ ./so_test.sh 
something-else 
2 
2 
something-else 
3 
3 
3 
something-else 
4 
4 
4 
4 
something-else 
5 
5 
5 
5 
5 
something-else 
6 
6 
6 
6 
6 
6 
something-else 
7 
7 
7 
7 
7 
7 
7 
+0

編集は元々投稿した「i」をインクリメントするコードを変更しました。 – LHWizard

関連する問題