我正在尝试运行名为test.sh
的简单脚本,其中echo
数字以递增方式显示。但不知何故,它显示错误。
#!/bin/bash
clear
a= 0
while [ $a <= 5 ];
do
echo $a
a=$(( a+1 ))
done
错误:
./test.sh: line 4: 0: command not found
./test.sh: line 6: =: No such file or directory
答案 0 :(得分:1)
Anubhava已经提到了更好的方法,但这是你答案的正确版本。
#!/bin/bash
clear
a=0
while [[ "$a" -lt 5 ]];
do
echo $a
a=$(($a+1))
done
答案 1 :(得分:1)
您的代码的第一个问题是a= 0
,在分配时不允许使用空格(在=
之前或之后)。
其次,这部分[ $a <= 5 ]
。您必须在此使用-lt
代替<=
。
由于您已经熟悉(( ))
构造,我建议您使用它,这样可以将整数与<=
,>=
等进行比较。
您的代码具有上述修改:
#!/bin/bash
clear
a=0
while (( $a <= 5 ));
do
echo $a
a=$(( a+1 ))
done