BASH 比较运算小结[转载 小蜗牛五二]
生活随笔
收集整理的這篇文章主要介紹了
BASH 比较运算小结[转载 小蜗牛五二]
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?
| 版權(quán)聲明: 原創(chuàng)作品,允許轉(zhuǎn)載,轉(zhuǎn)載時(shí)請(qǐng)務(wù)必以超鏈接形式標(biāo)明文章 原始出處 、作者信息和本聲明。否則將追究法律責(zé)任。http://snailwarrior.blog.51cto.com/680306/154788 |
| 【小蝸牛五二無(wú)聊之作 】 網(wǎng)絡(luò)上能找到的相關(guān)資料太多了,也太繁雜,但有些人還整理得不錯(cuò),下面根據(jù)自己的偏好再梳理一下,有些是自己對(duì)照著man手冊(cè)翻譯的,下面的例子都是自己編造自己測(cè)試OK,都是比較實(shí)用的東西,方便自己日后參考。 1、算術(shù)運(yùn)算比較運(yùn)算符(bash自身不能比較浮點(diǎn)數(shù)) ? -eq 等于????????? [ $num1 -eq $num2 ] -ne 不等于?????? [ 100?? -ne $num1 ] -lt 小于?????????? [ 100?? -lt `expr $num1 + $num2` ] -le 小于或等于?? [ 100?? -le `expr $num1 /* $num2` ] -gt 大于????????? ?[ 100?? -gt `expr $num1 / $num2` ] -ge 大于或等于?? [ 100?? -ge `expr $num1 % $num2` ] 2、字符串比較運(yùn)算符 ?? -z string? 如果 string 長(zhǎng)度為零,則為真? [ -z "`ps aux | grep mysql`" ] -n string? 如果 string 長(zhǎng)度非零,則為真? [ -n "$string" ] ????????????? 【注意】 $string 一定要放在雙引號(hào)里面 "$string",否則使用 -n -z 的結(jié)果都為真! string1 != string2? 如果 string1 與 string2 不同,則為真? [ "$str1" != "Snail" ] string1 == string2? 如果 string1 與 string2 相同,則為真? [ "$str1" == "$str2" ] ??????????????????? (上面用一個(gè) = 也可以,在嚴(yán)格的 POSIX 兼容下使用) string1 < string2?? 如果 string1 按字典順序比較小于 string2,則為真 string1 > string2?? 如果 string1 按字典順序比較大于 string2,則為真 3、文件比較運(yùn)算符? ? -a filename? 如果 filename 存在,則為真?????????????????? [ -e $HOME/.bashrc ] -e filename? (同上) -b filename? 如果 filename 存在,并且是塊文件,則為真???? [ -e /dev/loop0 ] -c filename? 如果 filename 存在,并且是字符文件,則為真?? [ -e /dev/ttyS0 ] -d filename? 如果 filename 存在,并且為目錄,則為真?????? [ -d /home/snail ] -f filename? 如果 filename 存在,并且為常規(guī)文件,則為真?? [ -f /dev/ttyS0 ] -g filename? 如果 filename 存在,并且為set-group-id,為真 [ -f $HOME/ak47 ] -h filename? 如果 filename 存在,并且為符號(hào)連接,則為真?? [ -h /bin/vi ] -L filename? (同上) -k filename? 如果 filename 存在,并且設(shè)置了sticky位,為真 [ -k /bin/ping ] -p filename? 如果 filename 存在,并且為有名管道(FIFO),真 [ -p /tmp/pipe ] -r filename? 如果 filename 存在,并且可讀,則為真???????? [ -r /etc/passwd ] -s filename? 如果 filename 存在,并且大小不為零,為真???? [ -s ./none-zero ] -u filename? 如果 filename 存在,并且為set-user-id,為真? [ -f $HOME/ak47 ]? ????? -w filename? 如果 filename 存在,并且可寫(xiě),則為真???????? [ -w /var/log/mail ] -x filename? 如果 filename 存在,并且可執(zhí)行,則為真?????? [ -x ./start.sh ] 下面這些不常用的: -t fd??????? 如果文件描述符被打開(kāi)并指向一個(gè)終端,則為真?? [ -t /proc/1/fd/10 ] ????????????? 【提示】 在 /proc/進(jìn)程號(hào)/fd 下可以找到文件描述符:) -O filename? 如果 filename 存在,并且被有效用戶(hù)ID所擁有,則為真 -G filename? 如果 filename 存在,并且被有效組ID所擁有,則為真 -S filename? 如果 filename 存在,并且為一個(gè)socket,則為真 [ -S /tmp/mysql.sock ] -N filename? 如果 filename 存在,并且在上次讀取后被修改過(guò),則為真 -o optname?? 如果 shell 選項(xiàng) optname 被開(kāi)啟,則為真 ????????????? 【提示】 使用 set -o 來(lái)查看 file1 -nt file2? 如果 file1 比 file2 新,或者 file1 存在 file2 不存在,則為真 file1 -ot file2? 如果 file1 比 file2 舊,或者 file2 存在 file1 不存在,則為真 file1 -ef file2? 如果 file1 和 file2 都指向同樣的設(shè)備(device)和索引節(jié)點(diǎn)號(hào)(inode numbers),則為真 ????????????? 【提示】 查看文件的索引節(jié)點(diǎn)可以用 ls -i 選項(xiàng) ------------------------------------------------------------------------------------------ 趙小蝸牛 QQ:?755721501 E-mail:?snailwarrior@qq.com 在不斷奉獻(xiàn)中謀求生存發(fā)展、打造自己的優(yōu)秀品質(zhì),用人性最本質(zhì)最動(dòng)人的一面“營(yíng)銷(xiāo)”自己! 本文出自 “小蝸牛技術(shù)之家 ” 博客,請(qǐng)務(wù)必保留此出處http://snailwarrior.blog.51cto.com/680306/154788 |
總結(jié)
以上是生活随笔為你收集整理的BASH 比较运算小结[转载 小蜗牛五二]的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Stats mac免费版 2.4.9(支
- 下一篇: Ubuntu的简单远程控制和远程桌面