博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
脚本报错:unary operator expected
阅读量:7242 次
发布时间:2019-06-29

本文共 1029 字,大约阅读时间需要 3 分钟。

hot3.png

脚本执行,出现如下错误:“h.sh: line 9: [: ==: unary operator expected”,具体脚本如下:

[root@Dasoncheng sbin]# cat -n h.sh      1	#!/bin/bash     2	sh -n $1 &>/tmp/err     3	if [ $? -eq 0 ];     4	then     5	    echo "The script is ok"     6	else     7	    cat /tmp/err     8	    read -p "Please input q/Q to exit , or others to edit it by vim: " n     9	    if [ $n == "q" ] || [ $n == "Q" ];    10	    then    11	        exit    12	    else    13	        vim $1    14	        exit    15	    fi    16	fi[root@Dasoncheng sbin]# sh h.sh i.sh i.sh: line 3: syntax error: unexpected end of filePlease input q/Q to exit , or others to edit it by vim: h.sh: line 9: [: ==: unary operator expectedh.sh: line 9: [: ==: unary operator expected  ##这个就是执行的报错信息;

解决办法:

if [ $n == "q" ] || [ $n == "Q" ];修改为:if [ "$n" == "q" ] || [ "$n" == "Q" ];##即可;

因为当$n为空值时(即回车 未输入任何参数),那么就成了 [ = "q"]了,显然缺少了对比参数。当$n值不为空时,脚本还是正常的;

使用如下几种方法,也可以避免:

if [[ $n == "q" ]] || [[ $n == "Q" ]]##或者if [ "$n"x == "q"x ] ##其中x也可以为其他字符;

转载于:https://my.oschina.net/u/3651233/blog/1622608

你可能感兴趣的文章
mvc控制器代码
查看>>
FreeSWITCH 与 Asterisk(译)
查看>>
JS判断字符串是否包含某字符串 indexOf()方法使用
查看>>
django 增加south apps
查看>>
nginx配置文件nginx.conf
查看>>
jQuery UI 实例 - 日期选择器(Datepicker)
查看>>
[Unity3d]3D车展之汽车开门关门和旋转缩放的效果的实现
查看>>
根据ISBN查询图书信息
查看>>
lvs实验2
查看>>
LESS与SASS的伯与仲
查看>>
关于eclipse的博客
查看>>
FormatMessage示例
查看>>
Zabbix监控Linux主机设置方法
查看>>
史上最清晰的红黑树讲解(下)
查看>>
awk命令用法及编程
查看>>
go语言之并发
查看>>
我的友情链接
查看>>
无法使用OUTLOOK收发邮件的问题
查看>>
dns解析外网域名很慢
查看>>
Netty系列之Netty可靠性分析
查看>>