预计在 Bash 中的一元运算符



我看到了关于同一问题的问题,但这些问题都是关于字符串的。整数呢?为什么我会收到"预期的一元运算符"错误?

 if [ $(date +%k%M) -ge ${!BLOCK1FRAN} ] ; then whatever ; fi

您正在使用间接寻址。如果变量${BLOCK1FRAN}指向空变量,您将收到错误消息。确保 ${BLOCK1FRAN} 指向的变量包含有效的数值。

如果要将空字符串和非数字值计算为零 (0 ),请使用以下语法。

if [[ $(date +%k%M) -ge ${!BLOCK1FRAN} ]]; then whatever ; fi

对我来说看起来不错。您确定已正确设置BLOCK1FRAN吗?

whatever() { echo "it works"; }
foo=42
BLOCK1FRAN=foo
if [ $(date +%k%M) -ge ${!BLOCK1FRAN} ] ; then whatever ; fi
it works

相关内容

  • 没有找到相关文章

最新更新