我正在尝试为我的学习作业制作Linux bash,我认为一切都很好(检查了许多资源(,但仍然出现错误(–eq:预期为二进制运算符(。我的例子出了什么问题?
for (( i=1; i <= 3; i++)) ### Outer for loop ###
do
for (( j=1; j <= 3; j++)) ### Inner for loop ###
do
tot=$(expr $i + $j)
echo „tot value: $tot”
tmp=$(expr $tot % 2)
echo „tmp value: $tmp”
if [ $tmp –eq 0 ]; then
echo –e –n „ 33[47m ”
else
echo –e –n „ 33[40m”
fi
done
echo –e –n „ 33[40m” #### set back background colour to black
echo „” #### print the new line ####
done
您在–eq
中使用了错误的字符。它应该是减号(-
(,而不是连字符(–
(。echo
行中使用的连字符也是如此。
还可以考虑使用bash
的内置算术扩展而不是expr
和test
:
#!/bin/bash
for (( i=1; i <= 3; i++)) ### Outer for loop ###
do
for (( j=1; j <= 3; j++)) ### Inner for loop ###
do
(( tot = i + j ))
echo "tot value: $tot"
(( tmp = tot % 2 ))
echo "tmp value: $tmp"
if (( tmp == 0 )); then
echo -e -n "