shell 程式設計

2022-08-09 00:21:11 字數 3569 閱讀 2976

判斷

[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 形式儲存所有輸入的命令列引數 以 ...