shell指令碼文法

來源:互聯網
上載者:User

shell指令碼:
#!/bin/bash  第一行必須通過#!來指定當前所用的shell

一、變數:
"":允許通過$符號引用其他變數的值
'':禁止引用其他變數,$視為一般字元
``:把命令執行的結果賦給變數

1、輸入變數:
read -p "輸入提示資訊:" a
$a    #調用並顯示變數a

2、自訂變數
a="hello world"
export a #設定a為全域變數,適合當前環境所支援的所有shell
echo $a   #顯示變數
unset a  #清除變數
a="haha:$a"  #給a前面追加字串
expr $a + $b #整數變數之間計算用expr

3、系統的數字變數:
#$0~$9都是系統定義好的數字變數,其中$0表示當前進程名

4、預定義變數:
$$:#當前進程號
$#:#命令列中位置參數的個數
$?:#上一條命令執行後返回的狀態:0表示正常,非0為異常
$*:#所有位置參數內容
$!:#後台啟動並執行最後一個進程號

 

應用:
a、#查詢系統上登陸的使用者個數,當使用者數過多是提示系統超載
[`who | wc -l` -le 10] && echo "yes"     參數wc是word count的縮寫

b、#尋找/boot分區的空間使用率超過額定大小就警示
#awk用來從檔案或字串中根據某種規則來抽取資訊資料,
#完整的awk指令碼用來格式化文字檔的資訊
a = `df -hT | grep "/boot" | awk '{print $6}' | cut -d "%" -f 1`
[$a -gt 95] && echo "/boot目錄佔用磁碟容量過大"

#判斷鍵盤上輸入的資訊是否與系統中的資訊相等
read -p "location:" mylocation
[$mylocation = "myLocation"] && echo "yes"

#判斷mysql是否在運行,若已運行輸出提示否則啟動mysql
service mysqld status &> /dev/null
if [$? -eq 0]
 then "mysql server is running"
 else /etc/init.d/mysqld restart
fi

#大量新增20個系統使用者,帳號分別為"user1"、"user2"、..."user20"
i=1
while [$i -le 20]
do
useradd user$i
echo "123456" | password --stdin user$i &>/dev/null
i=`expr $i +1`
done

#計算幾個數的和
result = 0
while [$# -gt 0]
do
result expr $reesult + $1
shift
done
echo "result is $result"

邏輯語句:

test命令:
1、test 條件運算式
2、[ 條件運算式 ]:
   [ 操作符 檔案或目錄 ]:
   操作符包括:
   -d:是否為目錄
   -e:是否存在
   -f:是否檔案
   -r:是否目前使用者有讀許可權
練習:[-d /etc/vsftpd]
   echo $?
   或
   [-d /etc/vosftpd]&& echo "yes"

if 磁碟已用空間>80%
 then 警示
fi

if 磁碟已用空間>80%
 then 警示
 else ...
fi

for tm in "moring" "noon" "evening"
do
 echo "the $tm of the day."
done

while 可用記憶體<100MB
do
可用記憶體數
done

函數
#定義一個函數並調用
adder(){
echo `expr $1 + $2`
}
adder12 34
adder 56 78

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.