比较符号作为变量
是否可以将比较符号设置为变量?
我想做这样的事情:
var1=${1}
var2=${2}
condition=${3}
if [[ "${var1}" "${condition}" "${var2}" ]]; then
echo "Warning!"
fi
./alert.sh "10" "5" ">"
回答
设置没问题,就是难用。(您的代码引发了语法错误。)
您可以从 切换[[ ]]到test,尽管它并不完全相同。
顺便说一下,>是一个字符串运算符。您可能想要-gt整数运算符。有关运算符表,请参阅上面的链接。
var1="10"
var2="5"
condition="-gt"
if test "${var1}" "${condition}" "${var2}"; then
echo "Warning!"
fi
输出:
var1="10"
var2="5"
condition="-gt"
if test "${var1}" "${condition}" "${var2}"; then
echo "Warning!"
fi
单方括号也有效(它们是等价的),但出于某种原因,ShellCheck检测到语法错误,因此为了让 ShellCheck 更轻松,我会说避免它,即使这是一个错误。
[ "${var1}" "${condition}" "${var2}" ]