shell脚本报错:"[: =: unary operator expected"解决办法

shell脚本报错:"[: =: unary operator expected"解决办法

在匹配字符串相等时,我用了类似这样的语句:

if [ $STATUS == "OK" ]; then   

echo "OK"

fi

在运行时出现了 [: =: unary operator expected 的错误,就一直找不到原因,尝试了删除等号两侧的空格和括号里的空格都不管用,最后baidu了一下,才找到原因。把语句改成这样就不会出错了.

if [[ $STATUS = "OK" ]]; 

then   

echo "OK"

fi

究其原因,是因为如果变量STATUS值为空,那么就成了 [ = "OK"] ,显然 [ 和 "OK" 不相等并且缺少了 [ 符号,所以报了这样的错误。当然不总是出错,如果变量STATUS值不为空,程序就正常了,所以这样的错误还是很隐蔽的。

或者用下面的方法也能避免这种错 误:if [ "$STATUS"x == "OK"x ]; then     echo "OK"fi。当然,x也可以是其他字符。顺便提一点,shell中有没有双引号在很多情况下是一致的。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • UNEXPECTED INCONSISTENCY: RUN fsck MANUALLY

    天有不测风云,机房断电或者电源有出现问题的时候,会造成死机或者直接断电的现象,这个是比较正常的情况了.这些莫名其妙的死机会造成邮件系统的错乱,错乱了可使用下面的步骤进行紧急检查一下,切记只可在紧急的情况下运行,否则可能会对系统造成危害. 方法/步骤 开机的时候有出现下面的界面,看提示有按CTRL+D继续,按了CTRL+D会重启,再次回到这个界面. 在此界面输入下root的密码.会进入到修复模式. 在修复模式下,输入命令fsck –y /dev/mapper/VolGroup-lv_root 这个

  • python出现"IndentationError: unexpected indent"错误解决办法

    python出现"IndentationError: unexpected indent"错误解决办法 Python是一种对缩进非常敏感的语言,最常见的情况是tab和空格的混用会导致错误,或者缩进不对 如下图中的代码: 以上代码中第一次运行可以正常运行 但是第二次运行时就报错了, 原因就是第二次再e之前加了一个空格" " 解决办法只要将e之前的空格删除即可 如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

  • JS提示:Uncaught SyntaxError:Unexpected token ) 错误的解决方法

    本文实例讲述了JS提示:Uncaught SyntaxError:Unexpected token ) 错误的解决方法.分享给大家供大家参考,具体如下: Uncaught SyntaxError: Unexpected token ) 以下代码引发了此异常: <div class="Hd_live_Sharediv left"> <a href="javascript:void()" onclick="loadLivePlayer('ud

  • PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法

    今天在写PHP程序的时候总是出现这样的错误:Parse error: syntax error, unexpected end of file in *.php on line *,然后我就根据提示,找到那个文件,然后错误中总是提示最后一行出错,我找到最后一行发现是</html>,晕的,这能有什么错误,找了好久才找到问题所在,拿来分享. 出现这个错误的原因就是语法错误,肯定是PHP程序的书写不规范造成,我后来一条一条看才发现,原来是PHP语句标识符错了,正常情况下应该是这样的:<?php

  • vue-cli 打包后提交到线上出现 "Uncaught SyntaxError:Unexpected token" 报错

    前言: 项目使用vue-cli版本2.9.3 ,vue-router使用webpackChunkName实现按需加载. BUG描述:该报错在项目上线一段时间后,有用户反映页面无法正常游览 (后面以问题1/问题2区分) 问题1.导航点击无法正常跳转,console打印:Error:Loading chunk {n} failed. 报错截图 问题2.页面全白,console打印:Uncaught SyntaxError:Unexpected token < 报错截图: 经过一番折腾,初步定位问题1

  • JS提示:Uncaught SyntaxError: Unexpected token ILLEGAL错误的解决方法

    本文实例讲述了JS提示:Uncaught SyntaxError: Unexpected token ILLEGAL错误的解决方法.分享给大家供大家参考,具体如下: Uncaught SyntaxError: Unexpected token ILLEGAL 未捕获的语法错误: 意想不到的非法令牌 如下图所示: 复制代码 代码如下: <input id="btn_0_4EAE4F474C91156086C0D4EA7E983C69C215B649" type="butt

  • Expected conditions模块使用方法汇总代码解析

    一.expected_conditions模块是什么? 是Selenium的一个子模块,selenium.webdriver.support.expected_conditions 可以对网页上元素是否存在,可点击等等进行判断,一般用于断言或与WebDriverWait配合使用 二.expected_conditions模块简单应用 2.1 WebDriverWait与expected_conditions配合使用实例一 import os import time from selenium i

  • Vue项目报错:Uncaught SyntaxError: Unexpected token <

    遇到问题: 今天做一个 VUE 的项目,在引入第三方依赖的 JS 文件时,遇到了一个问题: 控制台的提示:Uncaught SyntaxError: Unexpected token < 按照提示进入文件,再看如下图: 仔细看了看 index.html 文件,发现原本我的 JS 文件是放在 /src/utils 文件夹下的,但引入 /src 和 /static 的文件是有区别的. 解决方案: 解决办法是将第三方依赖的 JS 文件放到 /static/utils 目录下,引入路径也改成:<scr

  • shell脚本报错:"[: =: unary operator expected"解决办法

    shell脚本报错:"[: =: unary operator expected"解决办法 在匹配字符串相等时,我用了类似这样的语句: if [ $STATUS == "OK" ]; then echo "OK" fi 在运行时出现了 [: =: unary operator expected 的错误,就一直找不到原因,尝试了删除等号两侧的空格和括号里的空格都不管用,最后baidu了一下,才找到原因.把语句改成这样就不会出错了. if [[ $S

  • shell脚本报错:"[: =: unary operator expected"解决办法

    shell脚本报错:"[: =: unary operator expected"解决办法 在匹配字符串相等时,我用了类似这样的语句: if [ $STATUS == "OK" ]; then echo "OK" fi 在运行时出现了 [: =: unary operator expected 的错误,就一直找不到原因,尝试了删除等号两侧的空格和括号里的空格都不管用,最后baidu了一下,才找到原因.把语句改成这样就不会出错了. if [[ $S

  • Tomcat报错: JDBC unregister 解决办法

     Tomcat报错: JDBC unregister 解决办法 摘要: The web application [web application] registered the JDBC driver [net.sourceforge.jtds.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has be

  • Javaweb工程运行报错HTTP Status 404解决办法

    最近在学习jsp和servlet,避免不了的要和tomcat打交道,但tomcat经常会出现各式各样的错误,下面是我总结的一些常见的解决方法,希望对大家有用. 1.未部署Web应用 2.URL输入错误 排错方法:首先,查看URL的IP地址和端口号是否书写正确.              其次,查看上下文路径是否正确 Project--------Properties------MyElipse-----Web-----Web Context-root检查这个路径名称是否书写正确.       

  • Spring Boot 2.6.x整合Swagger启动失败报错问题的完美解决办法

    目录 问题 原因 解决方案 方案一(治标) 方案二(治本) 总结 问题 Spring Boot 2.6.x版本引入依赖 springfox-boot-starter (Swagger 3.0) 后,启动容器会报错: Failed to start bean ‘ documentationPluginsBootstrapper ‘ ; nested exception… 原因 Springfox 假设 Spring MVC 的路径匹配策略是 ant-path-matcher,而 Spring Bo

  • SpringBoot项目报错:"Error starting ApplicationContext...."解决办法

    目录 发现错误 一.编译出问题 二.请求接口重复 三.加@Mapper注解 四.加@SpringBootApplication注解,数据库问题 五.端口重复问题 六.包冲突 总结 发现错误 SpringBoot项目报错: Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 以下方案80%可以帮助您解决这些个‘可恶的’问题

  • windows下写的shell脚本在linux执行出错的解决办法

    在Windows下写了一个shell脚本,上传到Linux下执行时报错: 复制代码 代码如下: [root@localhost test]# ./test.sh   -bash: ./test.sh: /bin/sh^M: bad interpreter: No such file or directory test.sh源码:  复制代码 代码如下: #!/bin/sh echo "test shell " 由于自己对shell不太熟悉,找同事沟通了后了解了原委,主要原因是test.

  • Ajax报错400的参考解决办法

    Failed to load resource: the server responded with a status of 400 (Bad Request) 报错代码为400的错误的原因:基本上都是前台传的数据格式不正确造成的,但是这个格式如何不正确,就得看如何理解这个数据到底是怎么在传的啦. 我这只是简单的记录下,我这个报错400的原因,要是和你的不一样呢,也是有可能的. 写下我的代码报错400,的原因: 前台代码: $.ajax({ url: SUBSYSTEM_APP_NAME + "

  • nvm版本导致npm install报错Unexpected token '.'的解决办法

    目录 前言 npm install报错 降低node版本 升级nvm版本 总结 前言 前几天切换了node版本,顺带着升级了npm,今天使用nodemon启动node环境时发现报错,提示未安装.没安装就安装了下,结果!冒出来一大堆问题. npm install报错 我使用npm install nodemon -g直接给我报错,不信邪接着npm install cnpm -g还是报错. 这个报错我是真的看不懂,我去网上搜了下,发现也有人遇到过这个问题,好像是使用nvm-windows控制node

  • php curl返回错误码60如何解决

    今天有用户调用一个curl方法时,遇到如下的错误,查找了一些资料终于解决了.解决方法记录一下,留着自己以后自已查阅用. 错误代码 cURL error 60: SSL certificate problem: unable to get local issuer certificate 自定义接管错误输出后,可能如下显示 cURL error 60 错误 curl code ERROR 60错误 错误原因 curl 配置中开启了证书校验 就是使用了以下配置 curl_setopt($ch, CU

随机推荐