今日主要學習內容為如何編寫shell指令碼和流程控制語句
1、編寫簡單的指令碼
shell指令碼命令的工作方式有兩種,分別是:互動式和批處理
互動式:與人進行互動輸入操作的方式執行命令
批處理:輸入命令後,不用人為進行操作一次性將命令執行得出結果
shell指令碼主要分為三部分,分別是:指令碼宣告、指令碼注釋、指令碼命令
指令碼宣告 #!/bin/bash
指令碼注釋 #需要說明的指令碼內容及功能描述
指令碼命令 指令碼需要執行的命令
2、接收使用者的引數
linux內設了用於接收使用者輸入的引數變數,變數之間使用空格間隔,具體變數資訊如下:
$0 代表指令碼名稱
$# 代表共有多少個使用者輸入的引數
$* 代表都有哪些引數值
$1…n 代表第1或第n個資料的值
例:#!/bin/bash
echo 「當前指令碼名稱為0"e
cho"
總共有0" echo "總共有
0"echo
"總共有
#個引數,分別是$*。」
echo 「第1個引數為$1,第5個為$5。」
[root@linuxprobe ~]# sh example.sh one two three four five six
當前指令碼名稱為example.sh
總共有6個引數,分別是one two three four five six。
第1個引數為one,第5個為five。
3、判斷使用者的引數
格式:[ 條件表示式 ] 《中括號內兩邊注意必須留有空隔》
按照判斷物件來劃分,條件判斷語句可以分為4種:
檔案判斷語句;
邏輯判斷語句;
整數值比較語句;
字串比較語句。
檔案判斷所用的引數
操作符 作用
-d 測試檔案是否為目錄型別
-e 測試檔案是否存在
-f 判斷是否為一般檔案
-r 測試當前使用者是否有許可權讀取
-w 測試當前使用者是否有許可權寫入
-x 測試當前使用者是否有許可權執行
判斷的「與」「或」「非」
&& 代表邏輯與或邏輯和,若前面的命令執行成功時,則執行『&&』後面的語句
|| 代表邏輯或,若前面的命令執行失敗,則執行『||』後面的語句
! 代表邏輯非,取反值(取$?的反值)
整數比較運算子
操作符 作用
-eq 是否等於
-ne 是否不等於
-gt 是否大於
-lt 是否小於
-le 是否等於或小於
-ge 是否大於或等於
演示:[free -m | grep mem: | awk ''
-lt 1024 ] && echo 「buzu」 || echo 「congzu」
字串比較運算子
操作符 作用
= 比較字串內容是否相同
!= 比較字串內容是否不同
-z 判斷字串內容是否為空值
-z 可判斷變數是否被使用,可用echo $?檢視返回值確認
4、if條件判斷語句
if語句分為:單分支、雙分支和多分支三種型別
單分支語句格式:
if 條件
then
執行命令
fi雙分支語句格式:
if 條件
then
執行命令1
else
執行命令2
fi多分支語句格式:
if 條件1
then
執行命令1
elif 條件2
執行命令2
elif 條件3
執行命令3
else
執行命令4
fi例:
#!/bin/bash
read -p 「enter your score(0-100):」 grade
if [ $grade -ge 85 ] && [ gra
de−l
e100];
then
echo
"grade -le 100 ] ; then echo "
grade−
le10
0];t
hene
cho"
grade is excellent"
elif [ $grade -ge 70 ] && [ gra
de−l
e84];
then
echo
"grade -le 84 ] ; then echo "
grade−
le84
];th
enec
ho"grade is pass"
else
echo 「$grade is fail」
fi測試結果
[root@linuxprobe ~]# bash chkscore.sh
enter your score(0-100):88
88 is excellent
[root@linuxprobe ~]# bash chkscore.sh
enter your score(0-100):80
80 is pass
5、for條件迴圈語句
格式:for 變數名 in 取值列表
do執行命令
done
迴圈的次數是取決於取值列表的內容數量。
例:建立使用者名稱檔案
[root@linuxprobe ~]# vim users.txt
andy
barry
carl
duke
eric
george
批量建立使用者shell指令碼
LINUX學記筆記4
今日學習內容為 管道符 重定向與環境變數 1 輸入 輸出重定向 簡而言之,輸入重定向是指把檔案匯入到命令中,而輸出重定向則是指把原本要輸出到螢幕的資料資訊寫入到指定檔案中。在日常的學習和工作中,相較於輸入重定向,我們使用輸出重定向的頻率更高,所以又將輸出重定向分為了標準輸出重定向和錯誤輸出重定向兩種...
angular 學用標記 筆記
npm install g angular cli ng serve open ng serve命令會構建本應用 啟動開發伺服器 監聽原始檔,並且當那些檔案發生變化時重新構建本應用。open標誌會開啟瀏覽器 ng update 你還可以使用 cli 命令ng update發現 angular 的最新...
記筆記記筆記 RMQ ST演算法
1.概述 rmq range minimum maximum query 即區間最值查詢,是指這樣乙個問題 對於長度為n的數列a,回答若干詢問rmq a,i,j i,j n 返回數列a中下標在i,j之間的最小 大值。這兩個問題是在實際應用中經常遇到的問題,下面介紹一下解決這兩種問題的比較高效的演算法...