Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ubuntu bash–;eq:应为二进制运算符-为循环嵌套_Bash_Ubuntu - Fatal编程技术网

Ubuntu bash–;eq:应为二进制运算符-为循环嵌套

Ubuntu bash–;eq:应为二进制运算符-为循环嵌套,bash,ubuntu,Bash,Ubuntu,我正在尝试为我的学习作业制作LinuxBash,我认为一切都很好(检查了许多参考资料),但仍然出现了错误(–eq:binary operator expected)。我的例子有什么不对 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: $t

我正在尝试为我的学习作业制作LinuxBash,我认为一切都很好(检查了许多参考资料),但仍然出现了错误(–eq:binary operator expected)。我的例子有什么不对

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 „\033[47m ”
    else
        echo –e –n „\033[40m”
    fi
done
echo –e –n „\033[40m” #### set back background colour to black
echo „” #### print the new line ####
done

for((i=1;i您在
-eq
中使用了错误的字符)。它应该是负号(
-
),而不是连字符(
-
)。您在
echo
行上使用的连字符也是如此

也考虑使用<代码> BASH 内置的算术扩展而不是<代码> EXPR和<代码>测试< /代码>:

#!/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 "\033[47m "
        else
            echo -e -n "\033[40m"
        fi
    done
    echo -e "\033[40m" #### set back background colour to black
done
!/bin/bash

对于((i=1;i无关):不要启动一个子shell并调用
expr
,而是使用
bash
中的内置算术扩展,例如:
((tot=i+j))
考虑检查。谢谢,这工作非常好