shell 比较逻辑表达式

教程发布:风哥 教程分类:ITPUX技术网 更新日期:2022-02-12 浏览学习:219

[size=1]
[size=1]整数比较[size=1]
[size=1]-eq 等于,如:if [ "$a" -eq "$b" ][size=1]-ne 不等于,如:if [ "$a" -ne "$b" ][size=1]-gt 大于,如:if [ "$a" -gt "$b" ][size=1]-ge 大于等于,如:if [ "$a" -ge "$b" ][size=1]-lt 小于,如:if [ "$a" -lt "$b" ][size=1]-le 小于等于,如:if [ "$a" -le "$b" ][size=1]< 小于(需要双括号),如:(("$a" < "$b"))[size=1]<= 小于等于(需要双括号),如:(("$a" <= "$b"))[size=1]> 大于(需要双括号),如:(("$a" > "$b"))[size=1]>= 大于等于(需要双括号),如:(("$a" >= "$b"))[size=1]
[size=1]字符串比较[size=1]= 等于,如:if [ "$a" = "$b" ][size=1]== 等于,如:if [ "$a" == "$b" ],与=等价[size=1] 注意:==的功能在[[]]和[]中的行为是不同的,如下:[size=1] 1 [[ $a == z* ]] # 如果$a以"z"开头(模式匹配)那么将为true[size=1] 2 [[ $a == "z*" ]] # 如果$a等于z*(字符匹配),那么结果为true[size=1] 3[size=1] 4 [ $a == z* ] # File globbing 和word splitting将会发生[size=1] 5 [ "$a" == "z*" ] # 如果$a等于z*(字符匹配),那么结果为true[size=1] 一点解释,关于File globbing是一种关于文件的速记法,比如"*.c"就是,再如~也是.[size=1] 但是file globbing并不是严格的正则表达式,虽然绝大多数情况下结构比较像.[size=1]!= 不等于,如:if [ "$a" != "$b" ][size=1] 这个操作符将在[[]]结构中使用模式匹配.[size=1]< 小于,在ASCII字母顺序下.如:[size=1] if [[ "$a" < "$b" ]][size=1] if [ "$a" \< "$b" ][size=1] 注意:在[]结构中"<"需要被转义.[size=1]> 大于,在ASCII字母顺序下.如:[size=1] if [[ "$a" > "$b" ]][size=1] if [ "$a" \> "$b" ][size=1] 注意:在[]结构中">"需要被转义.[size=1] 具体参考Example 26-11来查看这个操作符应用的例子.[size=1]-z 字符串为"null".就是长度为0.[size=1]-n 字符串不为"null"[size=1] 注意:[size=1] 使用-n在[]结构中测试必须要用""把变量引起来.使用一个未被""的字符串来使用! -z[size=1] 或者就是未用""引用的字符串本身,放到[]结构中。虽然一般情况下可[size=1] 以工作,但这是不安全的.习惯于使用""来测试字符串是一种好习惯.[size=1]
[size=1]
if [ ! -d "$RMAN_LOG_DIR" ] if不存在 "$RMAN_LOG_DIR" 这个路径
[color=#010101]if [ -f "$RMAN_LOG_FILE" ]

[color=#010101]

[table=98%]
[td=84][size=1][color=#010101]逻辑卷标[td=510][size=1][color=#010101]表示意思
[td=84][size=1][color=#010101]1.[td=510][size=1][color=#010101]关于档案与目录的侦测逻辑卷标!
[td=84][size=1][color=#010101]-f[td=510][size=1][color=#010101]常用!侦测『档案』是否存在 [size=1][color=#010101]eg: if [ -f filename ]
[td=84][size=1][color=#010101]-d[td=510][size=1][color=#010101]常用!侦测『目录』是否存在
[td=84][size=1][color=#010101]-b[td=510][size=1][color=#010101]侦测是否为一个『 [size=1][color=#010101]block [size=1][color=#010101]档案』
[td=84][size=1][color=#010101]-c[td=510][size=1][color=#010101]侦测是否为一个『 [size=1][color=#010101]character [size=1][color=#010101]档案』
[td=84][size=1][color=#010101]-S[td=510][size=1][color=#010101]侦测是否为一个『 [size=1][color=#010101]socket [size=1][color=#010101]标签档案』
[td=84][size=1][color=#010101]-L[td=510][size=1][color=#010101]侦测是否为一个『 [size=1][color=#010101]symbolic link [size=1][color=#010101]的档案』
[td=84][size=1][color=#010101]-e[td=510][size=1][color=#010101]侦测『某个东西』是否存在!
[td=84][size=1][color=#010101]2.[td=510][size=1][color=#010101]关于程序的逻辑卷标!
[td=84][size=1][color=#010101]-G[td=510][size=1][color=#010101]侦测是否由 [size=1][color=#010101]GID [size=1][color=#010101]所执行的程序所拥有
[td=84][size=1][color=#010101]-O[td=510][size=1][color=#010101]侦测是否由 [size=1][color=#010101]UID [size=1][color=#010101]所执行的程序所拥有
[td=84][size=1][color=#010101]-p[td=510][size=1][color=#010101]侦测是否为程序间传送信息的 [size=1][color=#010101]name pipe [size=1][color=#010101]或是 [size=1][color=#010101]FIFO [size=1][color=#010101](老实说,这个不太懂!)
[td=84][size=1][color=#010101]3.[td=510][size=1][color=#010101]关于档案的属性侦测!
[td=84][size=1][color=#010101]-r[td=510][size=1][color=#010101]侦测是否为可读的属性
[td=84][size=1][color=#010101]-w[td=510][size=1][color=#010101]侦测是否为可以写入的属性
[td=84][indent][size=1][color=#010101]-x[/indent][td=510][indent][size=1][color=#010101]侦测是否为可执行的属性[/indent]
[td=84][size=1][color=#010101]-s[td=510][size=1][color=#010101]侦测是否为『非空白档案』
[td=84][size=1][color=#010101]-u[td=510][size=1][color=#010101]侦测是否具有『 [size=1][color=#010101]SUID [size=1][color=#010101]』的属性
[td=84][size=1][color=#010101]-g[td=510][size=1][color=#010101]侦测是否具有『 [size=1][color=#010101]SGID [size=1][color=#010101]』的属性
[td=84][size=1][color=#010101]-k[td=510][size=1][color=#010101]侦测是否具有『 [size=1][color=#010101]sticky bit [size=1][color=#010101]』的属性
[td=84][size=1][color=#010101]4.[td=510][size=1][color=#010101]两个档案之间的判断与比较 [size=1][color=#010101] [size=1][color=#010101];例如[size=1][color=#010101][ test file1 -nt file2 ]
[td=84][size=1][color=#010101]-nt[td=510][size=1][color=#010101]第一个档案比第二个档案新
[td=84][size=1][color=#010101]-ot[td=510][size=1][color=#010101]第一个档案比第二个档案旧
[td=84][size=1][color=#010101]-ef[td=510][size=1][color=#010101]第一个档案与第二个档案为同一个档案( [size=1][color=#010101]link [size=1][color=#010101]之类的档案)
[td=84][size=1][color=#010101]5.[td=510][size=1][color=#010101]逻辑的『和 [size=1][color=#010101](and) [size=1][color=#010101]』『或[size=1][color=#010101](or) [size=1][color=#010101]』
[td=84][size=1][color=#010101]&&[td=510][size=1][color=#010101]逻辑的 [size=1][color=#010101]AND [size=1][color=#010101]的意思
[td=84][size=1][color=#010101]||[td=510][size=1][color=#010101]逻辑的 [size=1][color=#010101]OR [size=1][color=#010101]的意思

[table=98%]
[td=97][size=1][color=#010101]运算符号[td=497][size=1][color=#010101]代表意义
[td=97][size=1][color=#010101]=[td=497][size=1][color=#010101]等于 [size=1][color=#010101]应用于:整型或字符串比较 [size=1][color=#010101] [size=1][color=#808000]如果在[size=1][color=#808000][] [size=1][color=#808000]中,只能是字符串
[td=97][size=1][color=#010101]!=[td=497][size=1][color=#010101]不等于 [size=1][color=#010101]应用于:整型或字符串比较 [size=1][color=#010101] [size=1][color=#808000]如果在[size=1][color=#808000][] [size=1][color=#808000]中,只能是字符串
[td=97][size=1][color=#010101]<[td=497][size=1][color=#010101]小于 [size=1][color=#010101]应用于:整型比较 [size=1][color=#010101] [size=1][color=#808000]在 [size=1][color=#808000][] [size=1][color=#808000]中,不能使用 [size=1][color=#808000]表示字符串 [td=97][size=1][color=#010101]>[td=497][size=1][color=#010101]大于 [size=1][color=#010101]应用于:整型比较 [size=1][color=#010101] [size=1][color=#808000]在 [size=1][color=#808000][] [size=1][color=#808000]中,不能使用 [size=1][color=#808000] [size=1][color=#808000]表示字符串
[td=97][size=1][color=#010101]-eq[td=497][size=1][color=#010101]等于 [size=1][color=#010101]应用于:整型比较
[td=97][size=1][color=#010101]-ne[td=497][size=1][color=#010101]不等于 [size=1][color=#010101]应用于:整型比较
[td=97][size=1][color=#010101]-lt[td=497][size=1][color=#010101]小于 [size=1][color=#010101]应用于:整型比较
[td=97][size=1][color=#010101]-gt[td=497][size=1][color=#010101]大于 [size=1][color=#010101]应用于:整型比较
[td=97][size=1][color=#010101]-le[td=497][size=1][color=#010101]小于或等于 [size=1][color=#010101]应用于:整型比较
[td=97][size=1][color=#010101]-ge[td=497][size=1][color=#010101]大于或等于 [size=1][color=#010101]应用于:整型比较
[td=97][size=1][color=#010101]-a[td=497][size=1][color=#010101]双方都成立( [size=1][color=#010101]and [size=1][color=#010101]) [size=1][color=#010101]逻辑表达式 [size=1][color=#010101]–a [size=1][color=#010101]逻辑表达式
[td=97][size=1][color=#010101]-o[td=497][size=1][color=#010101]单方成立( [size=1][color=#010101]or [size=1][color=#010101]) [size=1][color=#010101]逻辑表达式 [size=1][color=#010101]–o [size=1][color=#010101]逻辑表达式
[td=97][size=1][color=#010101]-z[td=497][size=1][color=#010101]空字符串
[td=97][size=1][color=#010101]-n[td=497][size=1][color=#010101]非空字符串

[color=#010101]

[size=1]
[size=1]
[size=1]if [ $i -le 10 ] ; then #第一个(中括号)[和if及$i之间都必须有空格,10和第二个(中括号)]之间必须有空格,但是(中括号)]和;之间的空格可有可无[size=1]echo 0$i[size=1]else[size=1]echo $i[size=1]fi[size=1]case $i in[size=1]1|3|5|7|9|11|13|15) echo 00000;; #后面必须是两个分号;;[size=1]2|4|6|8|10|12|14) echo 11111;; #后面必须是两个分号;;[size=1]esac[size=1]
[size=1]
[size=1]
[size=1]

本文标签:
网站声明:本文由风哥整理发布,转载请保留此段声明,本站所有内容将不对其使用后果做任何承诺,请读者谨慎使用!
【上一篇】
【下一篇】