当前位置: 首页 > 知识库问答 >
问题:

[$var-eq 1]中的“意外运算符”[重复]

须巴英
2023-03-14
if [ $USE_TEST -eq 1 ]; then
echo "Hello"
fi
[: -eq: unexpected operator

共有1个答案

巫马心水
2023-03-14

这是引号很重要的问题之一;如果没有定义$USE_TEST,语句将扩展为:

if [ -eq 1 ]; then

常见的解决办法是:

if [ "$USE_TEST" -eq 1 ]; then

...但是这也意味着切换到字符串比较,因为-eq将以空字符串中断:

if [ "$USE_TEST" = 1 ]; then
 类似资料:
  • 问题内容: 我的代码: 但是当我执行 终端提示我 我的bash脚本有什么错误吗?谢谢! 问题答案: 您的 bash 脚本没有任何错误。但是您正在使用 sh 来执行它, sh的 语法不太广泛;) 因此,改为运行:)

  • 问题内容: 我有时会从下面的行中得到。 添加括号后,就可以了。 请澄清我的行为。提前致谢。 问题答案: 永远不会为null,尽管有时是。 也就是说,等同于总是如此。

  • 我正在阅读谷歌Android版的指南,他们有下面的片段。 <代码>是什么!! do in < code > userdao . save(response . body()!!)?

  • 问题内容: 我试图了解javascript中的一元运算符,其中的大部分内容都很有意义,但我不理解的是如何在以下示例中使用以下示例一个实际的代码示例: 据我了解 + a; 意味着使变量为a和 -a 的正值 ; 意味着使变量为a的负值。我已经尝试了许多示例,例如: 输出仍然是-10; 我也尝试过: 输出为0; 这些一元运算符的实际代码示例是什么? 问题答案: 该运营商不改变值的符号和符不改变的迹象。两

  • 问题内容: 我正在尝试编写一种获取a的方法,以验证数字是否在点后有东西,如果有,则返回a ,如果没有则返回a 。 输出: 因此,我想要的一切都发生在method中,但没有发生在method中。这些方法似乎必须完成相同的工作。但是我做错了什么? 问题答案: 正如其他答案所指出的,此行为是因为三元表达式的两个可能结果都必须具有相同的类型。 因此,您要做的所有事情都可以使三元版本的工作方式与将强制转换为

  • 我正在努力理解语法文件:https://github.com/antlr/grammars-v4/blob/master/url/url.g4 我无法理解运算符在最后的Character集合中:我知道代表不在集合运算符中,如:https://github.com/antlr/antlr4/blob/master/doc/lexer-rules.md即是匹配任何单个字符不在描述的集合中,但如何解释当