我正在写一个Bash脚本。当我运行它时,我得到一个我不明白的语法错误。
这是我的剧本:
#!/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 :(得分:2)
首先要删除第8行的反斜杠,因为它是一个转义字符(并且它会在它之后转义换行符)。在最后一行中,反斜杠没有产生这种影响,因为它后跟e
。
此外,在expr
表达式中,您需要用空格包围+
符号。我还展示了第二种增加j
的方法。
#!/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