unary operator expected】的更多相关文章

shell脚本报错:"[: =: unary operator expected" 在匹配字符串相等时,我用了类似这样的语句: if [ $STATUS == "OK" ]; then echo "OK" fi 在运行时出现了 [: =: unary operator expected 的错误,就一直找不到原因,尝试了删除等号两侧的空格和括号里的空格都不管用,最后baidu了一下,才找到原因.把语句改成这样就不会出错了. if [[ $STATU…
之前在写脚本时遇到了这样的错误 “[: ==: unary operator expected” 这是由于做判断的变量值为空导致的. 谷歌出解决方案: 在变量之后加任意字符.例如,要判断变量un是否为auto又要防止un为空出错则这样写 if [ ${un}x == autox] 当un为auto时,表达式为autox == autox,成立: un为空,表达式为x == autox ,则不成立.…
在centos系统从root用户切换到oracle用的时候,总是提示 : -bash- : :[: unary operator expected 能切换成功,就是总提示上面这个, 后来找到原因,在安装oracle软件的时候,曾在/etc/profile里设置如下内容: if[$user = "oracle"]; then if[$SHELL = "/bin/ksh"]; then ulimit -p 16384 ulimit -n 65536 else ulimi…
shell报错:-bash: [: ==: 期待一元表达式 解决方法 ([: ==: unary operator expected) blogdaren 2015-02-26  抢沙发 14916人次 问题背景: if [ $flag == '1' ]; then mode='--dev' else mode='--test' fi 如上代码, 执行shell报错:line 1: [: ==: unary operator expected[翻译过来就是:-bash: [: ==: 期待一元表…
在匹配字符串时用了类似这样的语句 if[ $timeofday = "yes"]; then echo "Good morning" exit 0 报错的原因是:如果变量timeofday的值为空,那么就if语句就变成了if [  ="yes" ],这不是一个合法的条件.为了避免出现这种情况,我们必须给变量加上引号if [ "$timeofdat"="yes" ],这样即使是空变量也提供了合法的测试条件,,…
使用-z或-n对一个变量判空时,需要注意若直接使用[ -n ${ARG} ]这种形式,若${ARG}中有空格将会报错, #!/bin/bash ARG="sd dd" if [ -n ${ARG} ]; then echo 'ARG:' ${ARG} else echo 'ARG is empty.' fi 输出: line : [: sd: binary operator expected ARG is empty. 解决方法,使用[[ -n ${ARG} ]]或[ -n "…
比较两个字符串是否相等的办法是: if [ "$test"x = "test"x ]; then这里的关键有几点:1 使用单个等号2 注意到等号两边各有一个空格:这是unix shell的要求3 注意到"$test"x最后的x,这是特意安排的,因为当$test为空的时候,上面的表达式就变成了x = testx,显然是不相等的.而如果没有这个x,表达式就会报错:[: =: unary operator expected 二元比较操作符,比较变量或者…
#!/bin/bash #this is a script of mysql backup if [ ! -d /mydata/data1/backup ] ;then mkdir /mydata/data1/backup fi cd /mydata/data1/backup | grep .*all.sql) #查找7天内是否有备份的文件 echo $file if [ -z $file ] ;then echo "backup all databases..." backupfil…
1) 为何叫做 shell ?在介绍 shell 是甚幺东西之前,不妨让我们重新检视使用者与计算机系统的关系:图(FIXME)我们知道计算机的运作不能离开硬件,但使用者却无法直接对硬件作驱动,硬件的驱动只能透过一个称为"操作系统(Operating System)"的软件来控管,事实上,我们每天所谈的 linux ,严格来说只是一个操作系统,我们称之为"核心(kernel)".然而,从使用者的角度来说,使用者也没办法直接操作 kernel ,而是透过 kernel…
1. 文章中写vi/etc/profile #这个很重要 if [ $USER ="oracle" ]; then     if [ $SHELL="/bin/ksh" ]; then         ulimit -p 16384         ulimit -n 65536     else         ulimit -u 16384 -n 65536     fi fi 修改后不能使用,切换用户时报错unary operator expected,查找到…
line 13: [ 0: unary operator expected please use "sudo service tomcat stop|start|restart" 出现此错误,需要去编辑/etc/init/tomcat 然后把 U_UID=  改成  U_UID=0 就可以了…
下面是工作中用到的链接数据库的shell程序. #!/bin/bash ] ; then echo "prase is wrong ,please check first" exit fi#知识点: 1,$#代表了命令行的参数数量 2,-le表示小于等于,拓展 lt表示小于,gt表示大于,ge表示大于等于,eq表示等于,ne表示不等于 if [ "$1"x != "online"x ] && [ "$1"x !…
[brand@localhost ~]$ echo $name hello hello [brand@localhost ~]$ [$name = "hello"] -bash: [: missing `]' #[ ] 与变量要有间隔 [brand@localhost ~]$ [ $name = "hello" ] -bash: [: =: unary operator expected# 包含$,分词影响 [brand@localhost ~]$ [[ $name…
shell中if做比较 比较两个字符串是否相等的办法是: if [ "$test"x = "test"x ]; then 这里的关键有几点: 1 使用单个等号 2 注意到等号两边各有一个空格:这是unix shell的要求 3 注意到"$test"x最后的x,这是特意安排的,因为当$test为空的时候,上面的表达式就变成了x = testx,显然是不相等的.而如果没有这个x,表达式就会报错:[: =: unary operator expecte…
一.前言 结构化编程中,主要有三种结构:顺序.分支.循环.由此可见分支判断的重要性. 而且在shell编程中往往会遇到进行判断的情况,比如:判断文件是否存在.目录是否存在等等. 二.if语句的结构 if [ 条件 ]; then ... elif [ 条件 ];then ... else ... fi 三.shell中的分支判断 shell中的判断有以下几种: 1.字符串判断 str1 = str2 当两个串有相同内容时为真 str1 != str2 当两个串内容不同时为真 -n str1 当串…
一 简介 1 字符串判断 str1 = str2 当两个串有相同内容.长度时为真  str1 != str2 当串str1和str2不等时为真  -n str1 当串的长度大于0时为真(串非空)  -z str1 当串的长度为0时为真(空串)  str1    当串str1为非空时为真 \ >  \ <                               比较大小的时候 可以使用大于号,小于号,但是需转义.例如 [ "2006.01.23" \> "…
比较两个字符串是否相等的办法是: if [ "$test"x = "test"x ]; then 这里的关键有几点: 1 使用单个等号 2 注意到等号两边各有一个空格:这是unix shell的要求 3 注意到"$test"x最后的x,这是特意安排的,因为当$test为空的时候,上面的表达式就变成了x = testx,显然是不相等的.而如果没有这个x,表达式就会报错:[: =: unary operator expected 二元比较操作符,比较…
  原文链接:http://blog.csdn.net/freexploit/article/details/626660 我在 CU 的日子并不长,有幸在 shell 版上与大家结缘.除了跟众前辈学习到不少技巧之外,也常看到不少朋友的问题.然而,在众多问题中,我发现许多瓶颈都源于 shell 的基础而已.每次要解说,却总有千言万语不知从何起之感... 这次,我不是来回答,而是准备了关于 shell 基础的十三个问题要问大家﹗希望 shell 学习者们能够透过寻找答案的过程,好好的将 shell…
比较两个字符串是否相等的办法是: if [ "$test"x = "test"x ]; then这里的关键有几点:1 使用单个等号2 注意到等号两边各有一个空格:这是unix shell的要求3 注意到"$test"x最后的x,这是特意安排的,因为当$test为空的时候,上面的表达式就变成了x = testx,显然是不相等的.而如果没有这个x,表达式就会报错:[: =: unary operator expected 二元比较操作符,比较变量或者…
1.整数比较  -eq  等于,如:if [ "$a" -eq "$b" ] -ne  不等于,如:if [ "$a" -ne "$b" ] -gt  大于,如:if [ "$a" -gt "$b" ] -ge  大于等于,如:if [ "$a" -ge "$b" ] -lt   小于,如:if [ "$a" -lt "…
综合网络,略有修改, 一 简介 1 字符串判断 str1 = str2 当两个串有相同内容.长度时为真  str1 != str2 当串str1和str2不等时为真  -n str1 当串的长度大于0时为真(串非空)  -z str1 当串的长度为0时为真(空串)  str1    当串str1为非空时为真 \ >  \ <                               比较大小的时候 可以使用大于号,小于号,但是需转义.例如 [ "2006.01.23" \…
exVim主页 http://exvim.github.io/ 使用该配置原因: 简单,组织各种优秀插件,安装包很小,各种操作很流畅 实用,对于项目来说,只需要多出一个xx.exvim文件,所有符号等自身文件放在隐藏目录 单个项目可以配置很多xx.exvim文件 注意:exVim主页的用户手册已经很完善,但对于特殊的系统配置可能发生一些错误 1. 编译安装vim 7.4 vim官网http://www.vim.org/sources.php,下载下面三个包 vim-7.4.tar.bz2 vim…
第一步.安装依赖库 brew install -vd snappy leveldb gflags glog szip lmdb brew tap homebrew/science brew install hdf5 opencv brew install protobuf boost 第二步.编译caffe git clone https://github.com/BVLC/caffe.git cd caffe make all && make test && make r…
(注:关于变量概念,我们留到下两章才跟大家说明.) 好了,更多的关于 command line 的格式,以及 echo 命令的选项,就请您自行多加练习.运用了... -------------------------------------------------------------------------------------------------------------4) " "(双引号) 与 ' '(单引号)差在哪? 还是回到我们的 command line 来吧...…
在bash脚本编程中,我们经常做一些条件判断, 我们主要用到了三种,test,单中括号,双中括号 经常有看到不同的写法,如: [ $? –eq ] [[ $myvar == “mysql” ]] test -eq 并且还有看到一些并且和或的写法,如-a,-o,&&,||. 那这些都是怎么结合,有那么多的比较符号,我怎么记住,有什么注意事项. 1.test命令 test是bash的一个内建命令,用来测试后面给的条件是否为真,如 [root@localhost ~]# test -ne [ro…
电脑重装了系统,登录虚拟机的shell脚本需重写,在为编写的脚本命名时发现存在同名脚本,才想起来是连接公司服务器的登录脚本,不想写俩脚本,怕记混了,那就整合一下.代码如下: #!/bin/bash#zxl.sh 脚本名 if [ $1 == 1 ] then        ssh a.a.a.a else        ssh b.b.b.b fi so easy,运行脚本  ./zxl.sh  1  和  ./zxl.sh  2  成功登录了公司服务器和虚拟机.今天登录的时候,却出问题了. 我…
调试 bash 脚本的技巧 加 -x 参数运行 bash 脚本时,会显示执行的语句 # 也可以在 demo.sh 中加上 set -x bash -x demo.sh 设置环境变量,然后通过如上方式运行脚本时,会显示行号 export PS4='+${BASH_SOURCE}:${LINENO}:${FUNCNAME[0]}: ' 参考 [耗子叔-如何调试BASH脚本](https://coolshell.cn/articles/1379.html/comment-page-1#comment-…
bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html test可用于测试表达式,支持测试的范围包括:字符串比较,算术比较,文件存在性.属性.类型等判断.例如,判断文件是否为空.文件是否存在.是否是目录.变量是否大于5.字符串是否等于"longshuai".字符串是否为空等等.在shell中,几乎所有的判断都使用test实现. 其中[]完全等价于test,只是写法不同.双中括号[[]]基本等价于[],它支…
系统版本是centos7.4的 [root@data-1-1 ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [root@data-1-1 ~]# uname -r 3.10.0-693.el7.x86_64 [root@data-1-1 ~]# ip ad|grep eth0 |grep -v mtu inet 10.0.1.61/24 brd 10.0.1.255 scope global eth0 [root…
查看系统的shell: cat /etc/shells 文件测试表达式: -f 文件  文件存在且为普通文件则真,即测试表达式成立. -d 文件  文件存在且为目录文件则真,即测试表达式成立. -s 文件  文件存在且文件大小不为0则真,即测试表达式成立. -e 文件  文件存在则真,即测试表达式成立.只要有文件就行,要区别 -f . -r 文件  文件存在且可读则真,即测试表达式成立. -w 文件 文件存在且可写则真,即测试表达式成立. -x 文件  文件存在且可执行则真,即测试表达式成立.…