7.0 条件判断
1.0 判断结构
1.0 使用[[ ... ]]结构:
if [[ -e $file ]]
then
echo "..."
fi
使用[[ ... ]] 条件判断结构,而不是[ ... ] 能够防止脚本中的许多逻辑错误。比如 &&, ||, <, 和 > 操作能够正常存在于[[ ]] 中,但如果存在于[ ],则会报错。
2.0 其他结构
if cd "$dir" 2>/dev/null;then
echo "Now in $dir"
else
echo "Can't change to $dir"
fi
3.0 列表结构
var1=2
var2=22
[ "var1" -ne "$var2" ] && echo "$var1 is not equal $var2"
home=/home/bozo
[ -d "$home" ] || echo "$home directory does not exist"
4.0 test结构
if test -z "$1"
then
echo "No command-line arguments"
else
echo "First command-line argument is $1."
fi
5.0 (())结构
(())结构扩展并计算一个算术表达式的值。如果表达式的结果为0,那么返回的退出码为1,或者是"假".而一个非零值的表达式所返回的退出状态码将为0,或者是"true".这种情况和先前讨论的test命令和[]结构的行为正好相反
[root@cy-cloud02 exercise]# ((0))
[root@cy-cloud02 exercise]# echo $?
1 #当表达式结果为0的时候返回的状态码1,即假
[root@cy-cloud02 exercise]# (( 5 > 9 ))
[root@cy-cloud02 exercise]# echo $?
1
[root@cy-cloud02 exercise]# (( 5 < 9 ))
[root@cy-cloud02 exercise]# echo $?
0
[root@cy-cloud02 exercise]#
2.0 文件测试操作符:
-e :文件存在
-a :文件存在,与-e相同,已被弃用,不建议使用
-f :表示这是一个一般文件(并不是目录或者设备文件)
-s :表示文件大小不为0
-d :表示这是一个目录
-b :表示这是一个块设备
-p :这个文件是一个管道
-h :这是一个符号链接
-L :这是一个符号链接
-S :表示这是一个socket
-t :文件被关联到一个终端设备上
-r :可读读权限
-w :可写权限
-x :可执行权限
-g : set-group-id(sgid)标记被设置到文件或目录上
-u :set-user-id(suid)标记被设置到文件上
-k :设置粘贴位
-O :判断是否是文件的拥有者
-G :文件的group-id是否与你的相同
-N :从文件上一次被读取到现在为止,文件是否被修改过
f1 -nt f2 :文件f1比文件f2新
f1 -ot f2 :文件f1比文件f2旧
f1 -ef f2 :文件f1和文件f2是相同文件的硬链接
! : 非操作
3.0 比较操作符
二元比较操作符用来比较两个变量或数字。
-eq :等于 if [ "$a" -eq "$b" ]
-ne :不等于
-gt :大于
-ge :大于等于
-lt :小于
-le :小于等于
< : 小于(在双括号中使用) (("$a" < "$b"))
<= :
> :
>= :
= :
== :
if [[ "$a" < "$b" ]]
then
echo "..."
fi
注意:">" 使用在[] 结构中需要被转义 if [ "$a" \> "$b" ]
-z :字符串为"null",意思是字符串长度为零
-n :字符串不为"null"
-a :逻辑与
-o :逻辑或
&& 和 || 是在双中括号结构中使用的, -a 和 -o 一般是和test命令或者单中括号结构中一起使用的
[[ condition1 && condition2 ]]
if [ "$exp1" -a "$exp2" ]
注意:
常用的判断字符串的方法:
if [ "x$striing" != "x"] #"x"字符是可以相互抵消的,为了方法有些bash中 -n 判断的错误
then
echo "....."
fi
@dianxinguangchang.43F.zhongshanerlu.yuexiuqu.guangzhoushi.guangdongsheng
2016-10-18 18:32
分享到:
相关推荐
**高级Bash编程指南**是针对Linux或Unix系统中Bash shell脚本编写的一份深入教程,这份PDF版教程旨在帮助用户充分利用Bash的强大功能,提高自动化任务处理和系统管理的效率。Bash(Bourne-Again SHell)是大多数...
高级bash脚本编程指南
《高级 Bash 脚本编程指南》是一本广受好评的 Bash 脚本编程著作,原作者是 Mendel Cooper ,其原始版本地址是:http://tldp.org/LDP/abs/html/index.html ,豆瓣链接在此,评分高达 9.0分,其江湖地位斐然,可以...
《高级Bash脚本编程指南》是一本深入探讨Bash编程的资源,提供了丰富的示例和详尽的解释。以下是根据提供的压缩包文件名所涉及的一些核心知识点: 1. **数组操作**: - `array-append.bash`:Bash从4.0版本开始...
高级Bash脚本编程指南
### 二、《高级Bash脚本编程指南》内容概览 #### 1. 为什么使用shell编程 书中详细阐述了使用shell编程的优势,包括但不限于快速开发、易于调试、强大的文本处理能力和高度的可移植性。shell编程能够帮助用户高效...
高级 bash 脚本 编程指南 6.0 最新版 2009 高级 bash 脚本 编程指南 6.0 最新版 2009 高级 bash 脚本 编程指南 6.0 最新版 2009
所幸的是,我看到了这本被人称为abs的书,这本书介绍了bash大量的细节和广阔的范围,我遇到的绝大部分的技术问题--无论是我忘记的或是以前没有发现的--都可以在这本书里找到答案。这本使用大量的例子详细地介绍了...
"高级Bash脚本编程指南"是一本深入讲解Bash脚本编程的权威资料,其Doc转pdf高清版为学习者提供了方便的阅读体验。这本书涵盖了从基础到高级的多个层次,旨在帮助读者提升在Linux环境中使用Bash编写高效、可靠脚本的...
高级Bash脚本编程指南 原作者 Mendel Cooper 原书名 Advanced Bash-Scripting Guide 译者 黄毅 杨春敏 译者发布的是html和pdf版。pdf版只有3.7版,我花了点功夫基于最新的3.9做成了chm版。
本书《高级Bash脚本编程指南》是一本深入探讨UNIX®/Linux环境下Bash Shell脚本编程的权威指南,由Mendel Cooper所著。全书内容覆盖广泛,旨在为读者提供从基础到高级的Shell编程技能,并假定读者没有任何脚本编程或...
高级Bash脚本编程指南,chm格式。
Bash_Beginners_Guide_CHS 自己整理了一下,删除了一些没用的东西
《高级Bash编程指南》是一本专为熟练和有经验的Linux或Unix用户设计的书籍,旨在深入探讨Bash shell的高级用法和编程技巧。Bash,全称Bourne-Again SHell,是GNU项目的一个核心组件,广泛应用于各种Linux发行版和类...
"高级Bash脚本编程指南--中文版(advance_bash_scriipt_progaming_guide).pdf" 和 "苹果脚本跟我学.pdf" 这两本书籍,提供了丰富的资源来帮助初学者和有经验的开发者提升Bash脚本编写技能。 Bash脚本是通过Shell...
**高级Bash脚本编程指南** Bash(Bourne-Again SHell)是Linux和类Unix系统中的默认命令行解释器,它为用户提供了强大的交互式环境和脚本编写能力。通过学习高级Bash脚本编程,我们可以利用其丰富的功能来自动化...
高级Bash脚本编程指南(Advanced Bash-Scripting Guide,简称ABS)是一份详尽的教程,旨在帮助用户深入理解和掌握Bash脚本的高级特性,从而更有效地自动化日常任务。这份名为"ABS_Guide_cn"的中文版指南,为中文用户...
《高级Bash编程指南》是一本深入探讨Shell脚本编程艺术的专业书籍,由Mendel Cooper撰写,旨在帮助读者从初学者进阶为Bash编程的高手。这本书以丰富的实例和详尽的解释,覆盖了Bash编程的各个方面,不仅适合初学者,...