當前位置:
首頁 >
BASH 比较运算小结[转载 小蜗牛五二]
發布時間:2025/3/15
57
豆豆
生活随笔
收集整理的這篇文章主要介紹了
BASH 比较运算小结[转载 小蜗牛五二]
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
| 版權聲明: 原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://snailwarrior.blog.51cto.com/680306/154788 |
| 【小蝸牛五二無聊之作 】 網絡上能找到的相關資料太多了,也太繁雜,但有些人還整理得不錯,下面根據自己的偏好再梳理一下,有些是自己對照著man手冊翻譯的,下面的例子都是自己編造自己測試OK,都是比較實用的東西,方便自己日后參考。 1、算術運算比較運算符(bash自身不能比較浮點數) ? -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、字符串比較運算符 ?? -z string? 如果 string 長度為零,則為真? [ -z "`ps aux | grep mysql`" ] -n string? 如果 string 長度非零,則為真? [ -n "$string" ] ????????????? 【注意】 $string 一定要放在雙引號里面 "$string",否則使用 -n -z 的結果都為真! string1 != string2? 如果 string1 與 string2 不同,則為真? [ "$str1" != "Snail" ] string1 == string2? 如果 string1 與 string2 相同,則為真? [ "$str1" == "$str2" ] ??????????????????? (上面用一個 = 也可以,在嚴格的 POSIX 兼容下使用) string1 < string2?? 如果 string1 按字典順序比較小于 string2,則為真 string1 > string2?? 如果 string1 按字典順序比較大于 string2,則為真 3、文件比較運算符? ? -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 存在,并且為常規文件,則為真?? [ -f /dev/ttyS0 ] -g filename? 如果 filename 存在,并且為set-group-id,為真 [ -f $HOME/ak47 ] -h filename? 如果 filename 存在,并且為符號連接,則為真?? [ -h /bin/vi ] -L filename? (同上) -k filename? 如果 filename 存在,并且設置了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 存在,并且可寫,則為真???????? [ -w /var/log/mail ] -x filename? 如果 filename 存在,并且可執行,則為真?????? [ -x ./start.sh ] 下面這些不常用的: -t fd??????? 如果文件描述符被打開并指向一個終端,則為真?? [ -t /proc/1/fd/10 ] ????????????? 【提示】 在 /proc/進程號/fd 下可以找到文件描述符:) -O filename? 如果 filename 存在,并且被有效用戶ID所擁有,則為真 -G filename? 如果 filename 存在,并且被有效組ID所擁有,則為真 -S filename? 如果 filename 存在,并且為一個socket,則為真 [ -S /tmp/mysql.sock ] -N filename? 如果 filename 存在,并且在上次讀取后被修改過,則為真 -o optname?? 如果 shell 選項 optname 被開啟,則為真 ????????????? 【提示】 使用 set -o 來查看 file1 -nt file2? 如果 file1 比 file2 新,或者 file1 存在 file2 不存在,則為真 file1 -ot file2? 如果 file1 比 file2 舊,或者 file2 存在 file1 不存在,則為真 file1 -ef file2? 如果 file1 和 file2 都指向同樣的設備(device)和索引節點號(inode numbers),則為真 ????????????? 【提示】 查看文件的索引節點可以用 ls -i 選項 ------------------------------------------------------------------------------------------ 趙小蝸牛 QQ:?755721501 E-mail:?snailwarrior@qq.com 在不斷奉獻中謀求生存發展、打造自己的優秀品質,用人性最本質最動人的一面“營銷”自己! 本文出自 “小蝸牛技術之家 ” 博客,請務必保留此出處http://snailwarrior.blog.51cto.com/680306/154788 |
總結
以上是生活随笔為你收集整理的BASH 比较运算小结[转载 小蜗牛五二]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Stats mac免费版 2.4.9(支
- 下一篇: iMac 是什么?苹果2021新款 iM