【转】 shell 判断语句
转自:http://see.sl088.com/wiki/Shell_%E4%B8%AD%E6%8B%AC%E5%8F%B7
test 和 []
test -z string 判定字串是否為 0 ?若 string 為空字串,則為 true
test -n string 判定字串是否非為 0 ?若 string 為空字串,則為 false。
註: -n 亦可省略
test str1 = str2 判定 str1 是否等於 str2 ,若相等,則回傳 true
test str1 != str2 判定 str1 是否不等於 str2 ,若相等,則回傳 false
if [ ! -e ../src/build/dupserver ] ; then
cd ../src
gmake
cd ../config
fi
- –b 当file存在并且是块文件时返回真
- -c 当file存在并且是字符文件时返回真
- -d 当pathname存在并且是一个目录时返回真
- -e 当pathname指定的文件或目录存在时返回真
- -f 当file存在并且是正规文件时返回真
- -g 当由pathname指定的文件或目录存在并且设置了SGID位时返回为真
- -h 当file存在并且是符号链接文件时返回真,该选项在一些老系统上无效
- -k 当由pathname指定的文件或目录存在并且设置了“粘滞”位时返回真
- -p 当file存在并且是命令管道时返回为真
- -r 当由pathname指定的文件或目录存在并且可读时返回为真
- -s 当file存在文件大小大于0时返回真
- -u 当由pathname指定的文件或目录存在并且设置了SUID位时返回真
- -w 当由pathname指定的文件或目录存在并且可执行时返回真。一个目录为了它的内容被访问必然是可执行的。
- -o 当由pathname指定的文件或目录存在并且被子当前进程的有效用户ID所指定的用户拥有时返回真。
shell test用法 - 知识记录 - ITeye技术网站 沿途见识[6]
test –h File 文件存在并且是一个符号链接(同-L)
test –k File 文件存在并且设置了sticky位
test –b File 文件存在并且是块设备文件
test –L File 文件存在并且是一个符号链接(同-h)
Shell 条件测试 沿途见识[7]
test -c /dev/hda ; echo $? // 将打印 1 表示test 命令的返回值为1,/dev/hda 不是字符设备
[ -w /etc/passwd ]; echo $? // 查看对当前用户而言,passwd 文件是否可写
shell编程——if语句_macg_新浪博客 沿途见识[8]
逻辑非 ! 条件表达式的相反
if [ ! 表达式 ]
if [ ! -d $num ] 如果不存在目录$num
逻辑与 –a 条件表达式的并列
if [ 表达式1 –a 表达式2 ]
逻辑或 -o 条件表达式的或
if [ 表达式1 –o 表达式2 ]
shell脚本中逻辑判断|| 和-o的使用及区别 - Shell/awk/sed - LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区! - Powered by Discuz! 沿途见识[9]
-a -o ! 一般用在条件判断中
[ 条件1 -a 条件2 ] 当1和2都真时才为真
[ 条件1 -o 条件2 ] 当1和2其中一个为真即为真
[ ! 条件 ] 取反
&& || 这个也可用在条件判断中,非同上 !
[ -d name ] && echo "is dir" name为目录时为真,接着才出输入内容 有if---then的意思
[ -d name ] && echo "is dir" || echo "not dir" 这个有if--then--else的意思
语句1 && 语句2 && 语句3 &&...... 语句1执行成功时才执行语句2,以此类推...,这个常用在自动安装软件的脚本中
執行結果並不會顯示任何訊息,但最後我們可以透過 $? 或 && 及 || 來展現整個結果呢! 例如我們在將上面的例子改寫成這樣:
[root@www ~]# test -e /dmtsai && echo "exist" || echo "Not exist"
Not exist <==結果顯示不存在啊!
最終的結果可以告知我們是『exist』還是『Not exist』呢!那我知道 -e 是測試一個『東西』在不在, 如果還想要測試一下該檔名是啥玩意兒時,還有哪些標誌可以來判斷的呢?呵呵!有底下這些東西喔!
【转】 shell 判断语句的更多相关文章
- shell 判断语句
1.字符串判断 str1 = str2 当两个串有相同内容.长度时为真str1 != str2 当串str1和str2不等时为真-n str1 当串的长度大于0时为真(串非空)-z str1 当串的长 ...
- 6.shell判断语句
[ condition ](注意condition前后要有空格),可以使用$?验证(0为true,>1为false) 两个整数的比较:=:字符串比较-lt:小于-gt:大于-le:小于等于-ge ...
- shell判断语句
1.test命令 也可以用[ ]来表示 返回值为0时为true,返回值为1时为false. 例1:str1=aaa,str2=bbb 1)判断字符串是否为空(省略了-n选项,-n选项是不为空,-z ...
- linux shell中的条件判断语句
http://bbs.chinaunix.net/thread-396805-1-1.html shell 判断语句 流程控制 "if" 表达式 如果条件为真则执行then后面的部 ...
- shell判断文件,目录是否存在或者具有权限的代码
核心代码 #!/bin/sh myPath="/var/log/httpd/" myFile="/var /log/httpd/access.log" #这里的 ...
- Unix shell判断和比较
1. shell 的$! ,$?, $$,$@ $n $1 the first parameter,$2 the second... $# The number of c ...
- Linux Shell系列教程之(九)Shell判断 if else 用法
本文是Linux Shell系列教程的第(九)篇,更多shell教程请看:Linux Shell系列教程 判断语句是每个语言都必不可少的关键语法,Shell命令当然也不例外.今天就给大家介绍下Shel ...
- shell判断文件,目录是否存在或者具有权限 (转载)
转自:http://cqfish.blog.51cto.com/622299/187188 文章来源:http://hi.baidu.com/haigang/blog/item/e5f582262d6 ...
- shell判断和比较
http://blog.chinaunix.net/uid-7553302-id-183648.html 1 shell 的$! ,$?, $$,$@ $n $1 the first ...
随机推荐
- Oracle转MySQL
1. to_date 直接去掉 例如 select log.id from CM_LOGINLOG log where log.orgid =? and log.isAuto =? and lo ...
- ireport5.6+jasperreport6.3开发(二)--web开发的配置
ireport5.6只能编译出*.jasper的报表包,最终报表需要被输出为一个doc html pdf excel等文件,这时就需要jasperreport6.5的库进行配合了. jasperrep ...
- ireport5.6+jasperreport6.3开发(一)--中文环境配置在
ireport在pdf的情况下无法显示中文字的解决方法 1,首先下载宋体的ttf(注意ttc的不行)下载链接如下(注意你可以用其他的ttf不一定要宋体) http://files.cnblogs.co ...
- R语言实战(一)介绍、数据集与图形初阶
本文对应<R语言实战>前3章,因为里面大部分内容已经比较熟悉,所以在这里只是起一个索引的作用. 第1章 R语言介绍 获取帮助函数 help(), ? 查看函数帮助 exampl ...
- Linux启动盘-ultraiso
感觉windos和linux安装系统的启动盘不一样 其实我也不太懂. windos的时候我是用老毛桃 然后安装linux我就选择了ultraios作为启动盘 一: 先在百度下载 ultraios 二 ...
- Load Runner录制C/S客户端
1. 打开应用程序 2. 点击如下菜单 弹出窗口如下 3. 点击New,弹出窗口如下,选择Web(HTTP/HTML) 4. 点击Create,弹出窗口 5. 点击OK, ...
- CSS 日常问题总结
1.关于文本多余部分用省略号代替: http://www.cnblogs.com/hellman/p/5755376.html
- JavaScript进阶知识点(慕课)
JavaScript能做什么? 1.增强页面动态效果(如:下拉菜单.图片轮播.信息滚动等) 2.实现页面与用户之间的实时.动态交互(如:用户注册.登陆验证等) 一. 数组 var myarray=n ...
- acm系统开发笔记
时间: 2016/2/29 遇到的困难: 数据库配置的mysql和java(Date)不一致,出现下面错误 Date date = new Date(); SimpleDateFormat ...
- 开发一个简单的python计算器
要求: 实现加减乘除及拓号优先级解析 用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4* ...