bash - Ubuntu bash –eq : binary operator expected - nested for loop

标签 bash ubuntu

我正在尝试为我的学习作业制作 Linux bash,我认为一切都很好(检查了许多资源),但仍然出现错误( –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

最佳答案

您在 –eq 中使用了错误的字符.它应该是减号( - ),而不是连字符( )。您在 echo 上使用的连字符也是如此。线。
也可以考虑使用 bash的内置算术扩展而不是 exprtest :

#!/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

关于bash - Ubuntu bash –eq : binary operator expected - nested for loop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67470109/

相关文章:

bash - 未知名称的 Grep 文件名

bash - 在 sed 命令中转义正斜杠

asp.net - 适合使用 SQL Server 开发基于浏览器的数据库应用程序(报告)的平台?

node.js - nowjs/node-proxy 在 ubuntu 11.10 上安装失败

bash - 如何连接到在Docker容器中运行的Netcat?

bash - 如何避免需要创建一个临时文件来从 bash shell 运行两个命令?

bash - 具有文件描述符的重复 IO

linux - OpenJDK 运行时环境与 Java2 运行时环境

python - 如何在 Ubuntu 上将 python3 安装恢复为默认设置

ubuntu - 自动完成高级解释