使用test測試命令時,多數使用 「 [ 條件表示式 ] 」,條件表示式與方括號之間至少需要有乙個空格。
1、檔案測試:
2、整數值比較:
3、字元創比較:
4、邏輯測試:
一、單分支if語句:
執行過程:
單分支if語句示例:
[root@localhost ~]# vim chkconfig.sh
#!/bin/bash
dir="/media/cdrom" #定義乙個變數
if [ ! -d $dir ] #定義乙個測試條件
then #如果滿足則執行下面的命令
mkdir $dir
fi[root@localhost ~]# sh chkconfig.sh #執行指令碼,進行測試
[root@localhost ~]# ls /media
cdrom
二、雙分支if語句:執行過程:
雙分支if語句示例:
[root@localhost ~]# vim pinghost.sh
#!/bin/bash
ping -c 3 -i 0.2 -w 3 $1 &> /dev/null #ping 3次,間隔0.2秒,超時3秒,$1為位置變數
if [ $? -eq 0 ] #測試條件為前一條的命令執行成功
then #如果成功,則執行以下命令
echo "主機$當前狀態為up"
else #若不成功,則執行以下命令
echo "主機$當前狀態為down"
fi[root@localhost ~]# sh pinghost.sh 192.168.1.1
主機192.168.1.1當前狀態為up
[root@localhost ~]# sh pinghost.sh 192.168.1.2
主機192.168.1.2當前狀態為down
三、多分支if語句:執行過程:
多分支if語句示例:
[root@localhost ~]# vim gradediv.sh
#!/bin/bash
read -p "請輸入您的分數:" grade
if [ $grade -ge 85 ] && [ $grade -le 100 ]
then
echo "$ 分,優秀!"
elif [ $grade -ge 70 ] && [ $grade -le 84 ]
then
echo "$ 分,及格!"
else
echo "$ 分,不及格"
fi[root@localhost ~]# . gradediv.sh
請輸入您的分數:11
11 分,不及格
[root@localhost ~]# . gradediv.sh
請輸入您的分數:77
77 分,及格!
[root@localhost ~]# . gradediv.sh
請輸入您的分數:88
88 分,優秀!
Shell指令碼常用語句
指令碼測試 window 回車是 r n linux 回車是 n yum install y dos2unix 軟體 命令 dos2unix 指令碼名 處理 sh x 與 set x 開始 set x 結束 顯示指令碼執行過程 一.變數 1.區域性變數 只在乙個範圍內使用 普通變數 file ls ...
shell 指令碼之if for while語句
1 if語句 root ubuntu mnt shared shellbox shellif cat shellif.sh bin bash 推斷字串 if 1 hello then echo 1 1 fi 推斷數字,if 方式僅僅能在bash下用,在sh下不行 if 1 20 then echo ...
shell指令碼之expect語句
在編寫shell指令碼時,我們可能會遇到一些互動式的情況,如passwd ssh等等指令碼時,常常需要手動進行互動。這樣,原本為了實現自動部署的指令碼顯得有些不大方便,這時你就會用上expect命令了。expect命令可以幫你把互動式命令變成非互動式。expect 有期待 期望的中文意思。正如它的中...