Shell编程之判断条件
来源:互联网 发布:公共英语网络培训 编辑:程序博客网 时间:2024/05/17 20:33
最近在学习nutch2.2.1时,总是对bin/nutch中的判断条件不是太明白,之前虽然看过一些shell编程的介绍,但没有深入的研究过,更别提实践过了,借着学习nutch的热情,顺便对shell编程做下深入的学习,不敢提一定要熟悉或者精通到什么地步,但能确保可以熟练地阅读shell脚本,简单的脚本也可以信手拈来。这篇文章先简单地介绍一些判断语句,因为发现在nutch或者hadoop的脚本中判断条件的使用,无论从范围还是次数上来说都是很多的。
Shell编程中使用test命令进行其参数表达式的真假,如果参数表达式为真则返回0,为假返回非0,这一点与许多高级语言是有不同的,比如JAVA。为了编写代码的方便,shell内置了[]替换test命令,也就是可以将test命令后的参数表达式置于[]内,其效果和直接使用test命令是一致的,有一点需要特别注意,放置在[]内的参数必须与左右两边保留空格,否则会提示类似[1: command not found的信息。下面看一些具体的代码例子。
if test 1 -gt 0; then echo "One is greater than zero"fiif [ 1 -gt 0 ]; then echo "One is greater than zero"fiif test 1 -gt 0 -a 2 -gt 1 ; then echo "One is greater than zero and two is greater than one"fiif [ 1 -gt 0 -a 2 -gt 1 ]; then echo "One is greater than zero and two is greater than one"fiif test 1 -gt 0 -o 1 -gt 2; then echo "One is greater than zero or one is greater than two"fiif [ 1 -gt 0 -o 1 -gt 2 ]; then echo "One is greater than zero or one is greater than two"fi上面代码片段只演示了-gt(大于)的使用,其他的比较符号还有的-lt(小于)、-eq(等于)、-ne(不等与)、-ge(大于等于)、-le(小于等于),上面代码的输出如下:
One is greater than zeroOne is greater than zeroOne is greater than zero and two is greater than oneOne is greater than zero and two is greater than oneOne is greater than zero or one is greater than twoOne is greater than zero or one is greater than two再看一段字符串比较的代码
if [ -n "Hello" ]; then echo "The 'Hello' is not empty string"fiif [ -z ""]; then echo "The string is empty"fiif [ "hello" = "hello" ]; then echo "These string are equal"fiif [ "hello" != "hell" ]; then echo "These string are not equal"fi输出如下:
The 'Hello' is not empty stringThe string is emptyThese string are equalThese string are not equal最后看一下用于判断文件的常用命令,这些命令无论是在nutch还是hadoop的脚本中出现的频率都是很高的,并且大部分命令都很好理解与记忆,比如-b表示block,-d表示directory等等。
File1 –ef File2 两个文件具有同样的设备号和i结点号File1 –nt File2 文件1比文件2新File1 –ot File2 文件1比文件2旧–b File 文件存在并且是块设备文件–c File 文件存在并且是字符设备文件–d File 文件存在并且是目录–e File 文件存在–f File 文件存在并且是正规文件–g File 文件存在并且是设置了组ID–G File 文件存在并且属于有效组ID–h File 文件存在并且是一个符号链接(同-L)–k File 文件存在并且设置了sticky位–L File 文件存在并且是一个符号链接(同-h)–o File 文件存在并且属于有效用户ID–p File 文件存在并且是一个命名管道–r File 文件存在并且可读–s File 文件存在并且是一个套接字–t FD 文件描述符是在一个终端打开的–u File 文件存在并且设置了它的set-user-id位–w File 文件存在并且可写–x File 文件存在并且可执行相对其他高级语言的学习曲线,shell编程还是简单一些,毕竟Linux或者Unix都提供了丰富的内置命令,方便大家的直接使用,不过若想真正熟练地阅读或者编写shell脚本还需要多加练习。
- Shell编程之判断条件
- shell编程之条件判断
- Shell编程之条件判断
- 【Linux】Shell编程之条件判断
- shell编程-条件判断
- shell之条件判断
- Linux之shell编程之条件判断与流程控制
- Shell编程笔记--条件判断
- Linux Shell编程-条件判断
- Shell编程笔记--条件判断
- Shell编程笔记--条件判断
- shell文本过滤编程(三):awk之条件判断
- Shell编程之条件判断与流程控制
- 十二.shell编程之条件判断与流程控制
- Shell编程之条件判断和流程控制
- Shell编程之流程控制语句(条件判断)
- Linux-shell编程之条件判断与流程控制
- 【Linux shell】 Shell编程中的条件判断
- Spring事务传播机制说明
- 【LabVIEW小技巧】LabVIEW数值显示
- Android从资源文件中读取文件全
- ASP.NET MVC4 菜鸟项目之路(一)改造示例代码扩展用户信息管理
- Tsung录制测试脚本
- Shell编程之判断条件
- virtualhost apache
- Tsung录制测试脚本
- 个人对C语言编译过程的一些概括
- No such file or directory while executing existing binary
- dss和vlc和mp4creator,自己搭建rtp的cs框架
- 理解JavaScript原型
- ubuntu中root用户和user用户的相互切换
- java 中的Unsafe