shell判断false_【转】 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技术网站沿途见识

test –h File                                           文件存在并且是一个符号链接(同-L)

test –k File                                           文件存在并且设置了sticky位

test –b File                                           文件存在并且是块设备文件

test –L File                                           文件存在并且是一个符号链接(同-h)

Shell 条件测试沿途见识

test -c /dev/hda ; echo $? // 将打印 1 表示test 命令的返回值为1,/dev/hda 不是字符设备

[ -w /etc/passwd ]; echo $? // 查看对当前用户而言,passwd 文件是否可写

shell编程——if语句_macg_新浪博客沿途见识

逻辑非 !                   条件表达式的相反

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!沿途见识

-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

執行結果並不會顯示任何訊息,但最後我們可以透過 $? 或 && 及 || 來展現整個結果呢! 例如我們在將上面的例子改寫成這樣:

[root@www ~]# test -e /dmtsai && echo "exist" || echo "Not exist"

Not exist <==結果顯示不存在啊!

最終的結果可以告知我們是『exist』還是『Not exist』呢!那我知道 -e 是測試一個『東西』在不在, 如果還想要測試一下該檔名是啥玩意兒時,還有哪些標誌可以來判斷的呢?呵呵!有底下這些東西喔!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值