bash向终端输出添加颜色

bash向终端输出添加颜色,bash,Bash,autostatus将为jobstat变量提供运行状态、成功状态或失败状态。这个黑客脚本很好用。直到我想添加一些pazazzz。 如果jobstat等于SUCCESS,用绿色打印到终端上会很酷。其他任何东西,比如运行或失败,都打印成红色 #!/bin/bash jobname=$1 hostnam=$(hostname -f | cut -d"." -f2 ) red=$(tput setaf 1) green=$(tput setaf 2) reset=$(tput sgr0) hemisph

autostatus将为jobstat变量提供运行状态、成功状态或失败状态。这个黑客脚本很好用。直到我想添加一些pazazzz。 如果jobstat等于SUCCESS,用绿色打印到终端上会很酷。其他任何东西,比如运行或失败,都打印成红色

#!/bin/bash
jobname=$1
hostnam=$(hostname -f | cut -d"." -f2 )
red=$(tput setaf 1)
green=$(tput setaf 2)
reset=$(tput sgr0)
hemisphere="PADC"

while true
do
jobstat=$(autostatus -J $jobname)
choptim=$(date | awk '{print $4}')
    if [[ "$jobstat" == "SUCCESS" ]]; then
     echo "$hemisphere $choptim ${green} ${jobstat} ${reset} $jobname"
     else
     echo "$hemisphere $choptim ${red}${jobstat}${reset} $jobname"
fi
done
然而,当我运行它时,我得到了这个错误

line 14: conditional binary operator expected
line 14: syntax error near `$choptim'
line 14: `echo "$hemisphere $choptim ${green} ${jobstat} ${reset} $jobname"'

可能重复您的错误,请谈论第24行,但您的脚本只有17行。你能将你的帖子中的代码复制粘贴到一个新文件中,然后重新运行,确保它确实再现了你所问的问题,然后更新错误吗?使用十六进制编辑器检查不可见的恼人字符,如DOS行尾(CRLF)、Unicode不间断空格等。“如何在Linux中更改echo的输出颜色”为字符串指定颜色。我正在尝试为变量指定颜色。@capser-在这两种情况下它们都是变量。