判斷
[root@localhost ~]# [ 23 -ge 22 ] && echo "yes" || echo "no"
yes
[root@localhost ~]# [ 23 -le 22 ] && echo "yes" || echo "no"
no
判斷1 -a 判斷2 : 邏輯與流程控制判斷1 -o 判斷2 : 邏輯或
!判斷 : 邏輯非
if [ 條件判斷式 ];then
程式fi
if [ 條件判斷式 ]
then
程式fi
判斷登陸使用者是否為root使用者
#!/bin/bash
test=$(env |grep "user" | cut -d "=" -f2)
if [ "$test"==root ]
then
echo "current user is root."
fi
判斷分割槽使用率
#!/bin/bash
test=$(df -h | grep sda5 | awk '') | cut -d "%" -f 1)
#如果使用超過90,則傳送資訊提醒管理員做出相應措施
if [ "$test" -ge "90" ]
then
echo "/ is full"
fi
if [ 條件判斷式 ]
then
條件成立時,執行的程式
else
條件不成立時,執行的另乙個程式
fi
判斷是否為乙個目錄
#!/bin/bash
read -t 30 -p "please input a dir: " dir
if [ -d "$dir"]
then
echo "input is a directary."
else
echo "input isn't a directary."
fi
判斷apache是否啟動
#!/bin/bash
#擷取apached程序,並把結果賦予變數test
#測試test是否為空,如果不為空,則執行then中命令
fi
if [ 條件判斷式1 ]
then
當條件判斷式1成立時,執行程式1
elif [ 條件判斷式2 ]
then
當條件判斷式2成立時,執行程式2
... 省略更多的條件....
else
當所有條件不成立時,最後執行此程式
fi
判斷使用者輸入是什麼檔案
#!/bin/bash
#接收鍵盤的輸入,並賦予變數file
read -p "please input a filename: " file
#判斷變數是否為空
if [ -z "$file" ]
then
echo "erroe,please input a filename!!"
exit 1
#判斷file值是否為空
elif [ ! -e "file" ]
then
echo "you input is not a file! "
exit 2
#判斷file是否為乙個普通檔案
elif [ -f "$file" ]
then
echo "file is a regulare file ! "
#判斷file是否為乙個目錄
elif [ -d "$file" ]
then
ehco "file is a dirctory !"
else
echo "file is another file ! "
fi
case $變數名 in
"值1")
如果變數的值等於值1,則執行程式1
::"值2")
如果變數的值等於2,則執行程式2
;;...省略其他分支...
*) 如果變數的值都不是以上的值,則執行此程式
;;esac
for i in 1 2 3 4 5
do echo $i
done
批量解壓縮指令碼
#!/bin/bash
cd /root/test
ls *.tar.gz > ls.log
for i in $(cat ls.log)
do tar -zxf $i &> /dev/null
done
rm -rf /lamp/ls.log
批量新增指定數量的使用者
read -p "please input user name: " -t 30 name
read -p "please input the number of users: " -t 30 num
read -p "please input the password of users: " -t 30 pass
if [ ! -z "$name" -a ! -z "$num" -a ! -z "$pass" ]
then
y=$(echo $num | sed 's/[0-9]//g')
if [ -z "$y" ]
then
for (( i=1;i<=$num;i=i+1))
do/usr/sbin/useradd $name$i
echo $pass | /usr/bin/passwd --stdin $name$i &>/dev/null
done
fifi
Shell程式設計 shell特性
linux會預設記錄1000條歷史記錄,可通過 echo histsize 檢視,如果講histsize更改為2000,那麼會預設儲存2000條。1000條記錄儲存在家目錄的 bash history 中,僅當使用者正常退出當前shell時,當前shell中執行的命令才會儲存到 bash histo...
Shell程式設計 Shell函式
shell函式 1.將命令序列按格寫在一起 2.可方便重複使用命令序列 3.shell函式定義 function 函式名 4.呼叫函式的方法 函式名 引數1 引數2 5.shell函式應用示例 1 兩個數字求和 要求 通過sum 定義函式 兩個數求和 方法一 root localhost vim d...
Shell程式設計
1 建立指令碼 vi emacs等即可 bin sh 2 shell變數 對shell來講,所有的變數的取值都是乙個字串 shell是一種解釋性語言,變數無需事先定義 shell中的系統變數 程式命令列引數的數目 儲存前乙個命令的返回值 0 當前程式名 以 1 2 形式儲存所有輸入的命令列引數 以 ...