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中有没有双引号在很多情况下是一致的。

Shell脚本报错unary operator expected

在匹配字符串时用了类似这样的语句 if[ $timeofday = "yes"]; then echo "Good morning" exit 0 报错的原因是 ...

Linux shell 脚本报错:/bin/bash^M: bad interpreter: No such file or directory

今天遇到一个很诡异的问题,一直运行很正常的shell脚本失败了,只是昨天增加了一个参数而已. 报错信息: /bin/bash^M: bad interpreter: No such file or d ...

CRLF line terminators导致shell脚本报错:command not found

Linux和Windows文本文件的行结束标志不同.在Linux中,文本文件用"/n"表示回车换行,而Windows用"/r/n"表示回车换行.有时候在Wind ...

CRLF line terminators导致shell脚本报错:command not found --转载

Linux和Windows文本文件的行结束标志不同.在Linux中,文本文件用"/n"表示回车换行,而Windows用"/r/n"表示回车换行.有时候在Wind ...

centos6环境远程执行shell脚本报错not a valid identifier的问题处理

# 通过jenkins的apache用户rsync同步php代码到远程服务器报错如下: SSH: EXEC: STDOUT/STDERR from command [/bin/sh /usr/loca ...

shell脚本报错:syntax error: unexpected end of file

解决办法1: vi test.sh :set fileformat=unix :wq 解决办法2: yum install dos2unix dos2unix my.sh 原因剖析: DOS下文件和L ...

随机推荐

servlet基本原理(手动创建动态资源+工具开发动态资源)

一.手动开发动态资源 1 静态资源和动态资源的区别 静态资源: 当用户多次访问这个资源,资源的源代码永远不会改变的资源. 动态资源:当用户多次访问这个资源,资源的源代码可能会发送改变.

模拟jquery

...

Assetbundle的杂七杂八

使用Assetbundle时可能遇到的坑 一 24 十一郎未分类 No Comments 转自 http://www.unitymanual.com/blog-3571-132.html 1.Edit ...

【填坑纪事】一次用System.nanoTime()填坑System.currentTimeMills()的实例记录

JDK提供了两个方法,System.currentTimeMillis()和System.nanoTime(),这两个方法都可以用来获取表征当前时间的数值.但是如果不仔细辨别这两个方法的差别和联系,在 ...

SpringBoot系列: 设计Restful风格的API

RESTful 架构REST 并非一种技术或规范, 而是一种架构风格, 如果一个架构符合Rest的约束条件和原则, 就可以称作是 RESTful 架构. REST全称是Representational ...

SystemC_Basic

1.http://baike.baidu.com/view/1018980.htm 百度百科介绍的很好,举例很清晰. 2.SystemC的三个基本进程:SC_METHOD,SC_THREAD,SC_C ...

Thinkphp5笔记五:配置data文件夹

如果你看项目下的各种文件,有种乱七八糟的感觉的话,你就可以进行以下配置. 配置data文件夹的,整理各种文件,让看起来舒服些. 一.设置runtime文件夹 index.php define('RUN ...

C++ 设计模式 —— 訪问者(Visitor)

訪问者设计模式的实现借助于两个继承体系, (1)elements:一个是被操作的类(基类及其子类) (2)visitors:一个定义了一系列操作的訪问者(基类及其子类) 訪问者模式是一种行为型设计模式 ...

OneDrive网页版打不开的解决办法

发现OneDrive文件被误删了,想去网页版找回历史文件,发现网页版无法打开,而客户端是可以正常使用的,于是猜测是域名指向的主IP被封了,于是想通过客户端的IP访问 第一步,WireShark抓包 第 ...

L2-014. 列车调度(set的使用,最长递增子序列)

L2-014. 列车调度 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 火车站的列车调度铁轨的结构如下图所示. Figure ...

linux 简单脚本fi报错,shell脚本报错:[: =: unary operator expected相关推荐

  1. 运行shell脚本报错:“syntax error near unexpected token 的解决方法”

    运行shell脚本报错:"syntax error near unexpected token 的解决方法" 今天写了个Cshell脚本,运行报错syntax error near ...

  2. shell脚本报错:[: =: unary operator expected

    shell脚本报错:"[:=:unaryoperatorexpected" 在匹配字符串相等时,我用了类似这样的语句: if [ $STATUS == "OK" ...

  3. shell脚本报错:“[: =: unary operator expected“解决办法

    在匹配字符串相等时,我用了类似这样的语句: if [ $STATUS == "OK" ]; then echo "OK"fi 在运行时出现了 [: =: una ...

  4. CRLF line terminators导致shell脚本报错:command not found

    Linux和Windows文本文件的行结束标志不同.在Linux中,文本文 件用"/n"表示回车换行,而Windows用"/r/n"表示回车换行.有时候在Win ...

  5. CRLF line terminators导致shell脚本报错:command not found --转载

    Linux和Windows文本文件的行结束标志不同.在Linux中,文本文件用"/n"表示回车换行,而Windows用"/r/n"表示回车换行.有时候在Wind ...

  6. linux的shell脚本报错“syntax error near unexpected token `”的解决

    今天写了一个shell脚本,老报错检查了一下基本的语法并没有发现错误.后来经过百度解决掉了,现总结如下. 错误现象:执行shell脚本,老报错"syntax error near unexp ...

  7. Linux shell 脚本报错:/bin/bash^M: bad interpreter: No such file or directory

    今天遇到一个很诡异的问题,一直运行很正常的shell脚本失败了,只是昨天增加了一个参数而已. 报错信息: /bin/bash^M: bad interpreter: No such file or d ...

  8. 运行shell脚本报错:“syntax error near unexpected token fi 的解决方法

    用vim打开文件,在命令行模式下输入 :set ff 发现出来的是dos fileformat=dos 现在通过命令:set ff=unix设置我们的代码模式 set ff = unix 然后保存代码 ...

  9. shell脚本报错:-bash: xxx: /bin/sh^M: bad interpreter: No such file or directory

    今天写了一个shell脚本,然后在执行的时候报错,脚本内容很简单,仅供测试: Shell代码   #!/bin/sh echo "test shell " 具体报错信息如下: Sh ...

最新文章

  1. 关于OC的内存管理-01
  2. 03-CA/TA编程:aes_auth demo
  3. Fiddler之断点调试(模拟器)
  4. github 公钥 私钥_搭建自己的技术博客系列 2:把 Hexo 博客部署到 GitHub 上
  5. 世界末日倒计时 js代码
  6. python英寸换成厘米代码_Python的新手-尝试将厘米编码为英寸,反之亦...
  7. 随机生成大小为100的范围是100-1000的不重复的数组
  8. ORA-01830: date format picture ends before converting entire input string的几种原因
  9. 2003年第三批全国名老中医
  10. 分布式算法---gossip 协议
  11. 如何根据SIM卡背面的10位序列号判断运营商,国家,地区,卡商
  12. 项目管理100问 | NO.6 如何为项目制定里程碑?
  13. 《夏风》刊发的几组诗词
  14. matlab常用函数汇总
  15. 基于go实现简单的计算自资源监控
  16. debug protractor
  17. Oracle在采购部增加一名员工,ORACLEEBS采购功能点操作手册1.doc
  18. mac常用快捷键--在摸爬滚打中熟练
  19. 华为CaaS开放平台产品宣传片
  20. ORBSLAM3的IMU积分求解过程

热门文章

  1. Dart基础——Dart语法
  2. linux alignment总结
  3. 开鸿蒙 激洪声,孔圣人居阙里,开儒教,惊天地,后面是啥
  4. 6个月计算机专硕408备考经验
  5. 【GANs学习笔记】(十二)SAGAN
  6. 美好生活被重新定义,双十一饿了么帮你囤吃囤喝!
  7. 2014年新款MacBook Pro Retina 13、15全系评测与选购建议
  8. Cisco系列路由器密码恢复研究与实践
  9. iterm2,tmux使用笔记
  10. 如何问一个人做什么工作_只是让你的人做他们的工作