Shell编程中括号判断中赋值语句和判断语句
#!/bin/bash declare var="xxx"
# without space and use one =
#1.judge whether the assignment statement returns true
echo "----------------------test assignment in bracket --------------------------------"
[ var="yyyy" ] && echo "success"
echo "end"
# success
[ "$var"="yyyy" ] && echo "success"
echo "end"
# success
[ "var"="yyyy" ] && echo "success"
echo "end"
# success
[ var1="yyyy" ] && echo "success"
echo "end"
# success # result: yes #2. judge the assignment whether be taken in bracket
echo "--------------------test assignment whether been taken -----------------------"
[ var="yyyy" ] && echo "$var"
echo "end"
#xxx
#end
#result: assignment can't be taken in bracket #3. whether the effect of single = and double = similary
echo "-------------------test single = and double = ------------------------"
[ "$var" == "yyyy" ] && echo "$var"
echo "end"
#end
[ "$var" = "yyyy" ] && echo "$var"
echo "end"
#end
var="yyyy"
[ "$var" == "yyyy" ] && echo "$var"
echo "end"
#yyyy
#end
[ "$var" = "yyyy" ] && echo "$var"
echo "end"
#yyyy
#end
# result: effect same
#4. whether the effect of having space and not space similary
echo "----------------------test space -------------------------------------"
[ "$var"=="yyyy" ] && echo "$var"
echo "end"
#yyyy
#end
[ "$var"=="zzzz" ] && echo "$var"
echo "end"
#yyyy
#end
#result: always true with no space #conclusion:
# with space at both side of = will judge in normal
# don't space at both side of = or == will always true
通过上面的测试得出的结论是:
在中括号判断中不使用空格例如 "$var"="xx" 或 "$var"=="xxx"(在= 和== 两边没有空格)则这个判断一直是真
在中括号中使用空格 例如 "$var" = "xx" 或 "$var" == "xxx"(在= 和== 两边有空格) 则这个判断会按照正常的值进行判断,值相等返回true否则返回false
可能会因使用的shell及其版本不同而导致结果不同,我使用的shell是:GNU bash, version 4.1.2(1)-release (i686-redhat-linux-gnu)
Shell编程中括号判断中赋值语句和判断语句的更多相关文章
- 【转】shell编程下 特殊变量、test / [ ]判断、循环、脚本排错
[转]shell编程下 特殊变量.test / [ ]判断.循环.脚本排错 第1章 shell中的特殊变量 1.1 $# $# 表示参数的个数 1.1.1 [示例]脚本内容 [root@znix ~] ...
- shell编程系列6--shell中的函数
shell编程系列6--shell中的函数 .函数介绍 linux shell中的函数和大多数编程语言中的函数一样 将相似的任务或者代码封装到函数中,供其他地方调用 语法格式 第一种格式 name() ...
- shell编程系列7--shell中常用的工具find、locate、which、whereis
shell编程系列7--shell中常用的工具find.locate.which.whereis .文件查找之find命令 语法格式:find [路径] [选项] [操作] 选项 -name 根据文件 ...
- shell编程下 特殊变量、test / [ ]判断、循环、脚本排错
第1章 shell中的特殊变量 1.1 $# $# 表示参数的个数 1.1.1 [示例]脚本内容 [root@znix ~]# cat /server/scripts/show2.sh #!/bin/ ...
- GCC:条件判断中赋值语句和函数结尾时无返回值的警告
有下面非常经典的一个字符串复制程序. test1.c #include <stdio.h> int main() { char str_t[]="This String come ...
- Linux Shell编程基础
在学习Linux BASH Shell编程的过程中,发现由于不经常用,所以很多东西很容易忘记,所以写篇文章来记录一下 ls 显示当前路径下的文件,常用的有 -l 显示长格式 -a 显示所有包括隐 ...
- Shell编程笔记
Shell编程笔记与Windows下熟悉的批处理类似,也可以将一些重复性的命令操作写成一个脚本方便处理. 修改别人的脚本,运行后遇到个问题 setenv: command not found 查证 ...
- shell编程学习笔记(八):Shell中的if条件判断
编程语言中都有条件判断,shell编程也不例外,下面我们来看一下shell中应该怎么使用if条件判断 以下蓝色字体部分为Linux命令,红色字体的内容为输出的内容: # cd /opt/scripts ...
- shell if条件判断中:双中括号与单中括号的区别
电脑重装了系统,登录虚拟机的shell脚本需重写,在为编写的脚本命名时发现存在同名脚本,才想起来是连接公司服务器的登录脚本,不想写俩脚本,怕记混了,那就整合一下.代码如下: #!/bin/bash#z ...
随机推荐
- C# break continue return
break:跳出当前循环,执行循环后的代码 continue:跳出当前循环,执行下一次循环 return:跳出整个方法
- jekyll bootstrap
你还在纠结使用那个博客系统吗?或者为没有自己的服务器和专属域名而感到无奈?也许jekyll bootstrap是你的最终解决方案,使用它,你就可以像写代码一样写博客.本文将为你详细介绍ubuntu下的 ...
- git 基础使用
1: 安装客户端 2: 注册使用github 3: 具体操作 3-1: 右键打开:git bash here 执行 ssh-keygen -t rsa -C "youremail@examp ...
- javascript关键字和保留字
1 关键字breakcasecatchcontinuedefaultdeletedoelsefinallyforfunctionifininstanceofnewreturnswitchthisthr ...
- virtualtree 的使用(Delphi)
VirtualTreeview的强大,毋庸置疑,不过,你能给演示演示,也不错,就是刚下来,只有一个可执行程序,感觉像病毒. 最近比较忙,没有上网,现在把我研究的结果和大家通报下,方便新手学习,避免走弯 ...
- BestCoder Round #75
前两题不想写了 数位DP 1003 King's Order 考虑i的后缀有j个连续,转移状态很简单,滚动数组优化(其实不用) #include <bits/stdc++.h> const ...
- kafka 集群安装与安装测试
一.集群安装 1. Kafka下载:wget https://archive.apache.org/dist/kafka/0.8.1/kafka_2.9.2-0.8.1.tgz 解压 tar zxvf ...
- HowTo:使用数据流读写消息
本文主要演示使用TPL 数据流库从数据流块(dataflow block)读写消息. 提供了同步方法和异步方法. 主要使用BufferBlock,其既能作为message source,有能作为m ...
- HDU4609 3-idiots(母函数 + FFT)
题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=4609 Description King OMeGa catched three men wh ...
- POJ1904 King's Quest(完备匹配可行边:强连通分量)
题目大概就是说给一张二分图以及它的一个完备匹配,现在问X部的各个点可以与Y部那些些点匹配,使得X部其余点都能找到完备匹配. 枚举然后匹配,当然不行,会超时. 这题的解法是,在二分图基础上建一个有向图: ...