首页 > 解决方案 > 比较符号作为变量

问题描述

是否可以将比较符号设置为变量?

我想做这样的事情:

var1=${1}
var2=${2}
condition=${3}    

if [[ "${var1}" "${condition}" "${var2}" ]]; then
   echo "Warning!"
fi
./alert.sh "10" "5" ">"

标签: bash

解决方案


设置没问题,就是难用。(您的代码引发了语法错误。)

您可以从 切换[[ ]]test,尽管它并不完全相同

顺便说一句,>是一个字符串运算符。您可能想要-gt整数运算符。请参阅上面的链接以获取运算符表。

var1="10"
var2="5"
condition="-gt"

if test "${var1}" "${condition}" "${var2}"; then
   echo "Warning!"
fi

输出:

Warning!

单方括号也可以工作(它们是等效的),但由于某种原因,ShellCheck检测到语法错误,所以为了让 ShellCheck 的使用更轻松,我想说只是避免它,即使这是一个错误。

[ "${var1}" "${condition}" "${var2}" ]

推荐阅读