Shell编程之条件语句(if语句,case分支语句)
生活随笔
收集整理的這篇文章主要介紹了
Shell编程之条件语句(if语句,case分支语句)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Shell編程之條件語句
- 一、條件測試操作
- 1.test命令
- 2.文件測試
- 3.整數(shù)值比較
- 4.字符串比較
- 5.邏輯測試
- 二、if語句
- 單分支結(jié)構(gòu)
- 雙分支結(jié)構(gòu)
- 多分支結(jié)構(gòu)
- 三、case分支語句
一、條件測試操作
1.test命令
測試表達(dá)式是否成立,若不成立返回0,否則返回其他數(shù)值
格式1:test 條件表達(dá)式 格式2:[ 條件表達(dá)式 ]2.文件測試
[ 操作符 文件或目錄 ]常用的測試操作符
| -d | 測試是否為目錄(Directory) |
| -e | 測試目錄或文件是否存在(Exist) |
| -f | 測試是否為文件(File) |
| -r | 測試當(dāng)前用戶是否有權(quán)限讀取(Read) |
| -w | 測試當(dāng)前用戶是否有權(quán)限寫入(Write) |
| -x | 測試當(dāng)前用戶是否有權(quán)限執(zhí)行(Excute) |
3.整數(shù)值比較
[ 整數(shù)1 操作數(shù) 整數(shù)2 ] 常用的測試操作符: -eq #等于(Equal) -ne #不等于(Not Equal) -gt #大于(Greater Than) -lt #小于(Lesser Than) -le #小于或等于(Lesser or Equal) -ge #大于或等于(Greater or Equal)
4.字符串比較
格式1 [ 字符串1 = 字符串2 ][ 字符串1 != 字符串2 ] 格式2 [ -z 字符串 ] =:第一個(gè)字符串與第二個(gè)字符串相同!=:第一個(gè)字符與第二個(gè)字符串不相同,“!”表示取反-z:字符串內(nèi)容為空-n:是否有字符串存在5.邏輯測試
格式1:[ 表達(dá)式1 ] 操作符 [ 表達(dá)式2 ] 格式2:命令1 操作符 命令2常用的操作符:
-a或&& :邏輯與,“而且”的意思,前后條件需都成立 -o或|| :邏輯或,“或者”的意思,只需前后條件中一個(gè)成立 ! :邏輯否 a=5 [ $a -ne 1 ] && [ $a != 2 ] 等同于 [ $a -ne 1 -a $a != 2 ]#、&&、||操作符能夠正常存在于[[ ]]條件判斷結(jié)構(gòu)中,但是如果出現(xiàn)在[ ]結(jié)構(gòu)中的話,會(huì)報(bào)錯(cuò) [[ $a -ne 1 && $a != 2 ]] [ 2 -lt 3 ] && echo true || echo false [ 2 -ge 3 ] && echo true || echo false vim pinghost.sh #!/bin/bash ping -c 3 -i 0.5 -W 2 $1 &> /dev/null && echo "$1 online" || echo "$1 off"-c:發(fā)送包的個(gè)數(shù) -i:發(fā)送包的間隔時(shí)間 -W:超時(shí)時(shí)間 -w:多少秒后停止 ping 命令操作
二、if語句
單分支結(jié)構(gòu)
格式: if 條件測試操作 then 命令序列 fi 三種表達(dá)方式 方法一: if [ 3 -gt 2 ]thenecho "ok" fi方法二: if [ 3 -gt 2 ]; then echo "ok"; fi方法三: [ 3 -gt 2 ] && echo "ok"雙分支結(jié)構(gòu)
格式: if 條件測試操作 then 命令序列 1 else 命令序列 2 fi
多分支結(jié)構(gòu)
格式: if 條件測試操作 1 then 命令序列 1 elif 條件測試操作 2 then 命令序列 2 [else] [命令序列 3] fi示例:提示用戶輸入100米賽跑的秒數(shù),要求判斷秒數(shù)大于0且小于等于10秒的進(jìn)入選拔賽,大于10秒的都淘汰,
如果輸入其它字符則提示重新輸入;進(jìn)入選拔賽的成員再進(jìn)一步判斷男女性別,男生進(jìn)男生組,女生進(jìn)女生組,如果輸入錯(cuò)誤請?zhí)崾惧e(cuò)誤
三、case分支語句
case 變量值 in 模式一)命令序列 ;; 模式二)命令序列 ;; …… *)默認(rèn)命令序列 esac示例:
總結(jié)
以上是生活随笔為你收集整理的Shell编程之条件语句(if语句,case分支语句)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 内存超频大揭秘!微星z87i主板性能对比
- 下一篇: Shell脚本函数(函数传参、递归、创建