一.位置變量相關知識
1.位置變量定義:在腳本代碼中調用通過命令行傳遞給腳本的的參數
2.位置變量種類:
$1 $2 … :對應第一、第二…參數 shift [n]換位置
$@:傳遞給腳本的所有參數,每個參數為獨立字符串
$#:傳遞給腳本的參數的個數
$*:傳遞給腳本的所有參數,全部參數合為一個字符串
$0:命令本身
注意:$#和$@只有加上“”才會有區別
實例:寫腳本argdesc.sh先說明各個變量的作用,腳本內容如下
實驗結果如下
3.$@和$*的區別
$@:代表所有參數,每個參數作為獨立字符串
$*:代表所有字符串,把他們作為一個整體
(1)新建腳本文件1.sh,讓其調用2.sh,內容如下
(2)新建腳本文件2.sh,分別調用“$@”、“$*”,內容如下
(3)給予執行權限運行,此時把1.sh的參數作為整體
4.$#的說明
(1)$#指的是腳本調用多少參數
(2)在上邊使用過的2.sh中修改,內容如下
(3)執行2.sh,結果如下
總結:不論里邊是否調用外邊參數,$#表示的是外邊的參數個數總和
二.作業
1、編寫腳本/root/bin/systeminfo.sh,顯示當前主機系統信息,包括主機名,IPv4地址,操作系統版本,內核版本,CPU型號,內存大小,硬盤大小。
腳本內容如下:
執行結果如下
2、編寫腳本/root/bin/backup.sh,可實現每日將/etc/目錄備份到/root/etcYYYY-mm-dd中
文本內容如下:
運行結果如下:
3、編寫腳本/root/bin/disk.sh,顯示當前硬盤分區中空間利用率最大的值
腳本內容如下:
運行結果如下:
4、編寫腳本/root/bin/links.sh,顯示正連接本主機的每個遠程主機的IPv4地址和連接數,并按連接數從大到小排序
腳本內容如下:
執行結果:
5、寫一個腳本/root/bin/sumid.sh,計算/etc/passwd文件中的第10個用戶和第20用戶的ID之和
腳本內容如下:
結果如下:
6、寫一個腳本/root/bin/sumspace.sh,傳遞兩個文件路徑作為參數給腳本,計算這兩個文件中所有空白行之和
腳本內容如下:
結果如下:
7、寫一個腳本/root/bin/sumfile.sh,統計/etc, /var, /usr目錄中共有多少個一級子目錄和文件
腳本內容如下:
結果如下:
8、寫一個腳本/root/bin/argsnum.sh,接受一個文件路徑作為參數;如果參數個數小于1,則提示用戶“至少應該給一個參數”,并立即退出;如果參數個數不小于1,則顯示第一個參數所指向的文件中的空白行數
腳本內容如下:
結果如下:
9、寫一個腳本/root/bin/hostping.sh,接受一個主機的IPv4地址做為參數,測試是否可連通。如果能ping通,則提示用戶“該IP地址可訪問”;如果不可ping通,則提示用戶“該IP地址不可訪問”
腳本內容如下:
結果如下:
10、chmod -rw /tmp/file1,編寫腳本/root/bin/per.sh,判斷當前用戶對/tmp/fiile1文件是否不可讀且不可寫
腳本內容如下:
結果如下:
11、編寫腳本/root/bin/nologin.sh和login.sh,實現禁止和充許普通用戶登錄系統。
腳本內容如下:
結果如下:
12、寫一個腳本/root/bin/hostping.sh,接受一個主機的IPv4地址做為參數,先判斷是否合格IP,否,提示IP格式不合法并退出,是,測試是否可連通。如果能ping通,則提示用戶“該IP地址可訪問”;如果不可ping通,則提示用戶“該IP地址不可訪問”
腳本內容如下:
結果如下:
13、計算1+2+3+…+100的值
腳本內容如下:
結果如下:
14、計算從腳本第一參數A開始,到第二個參數B的所有數字的總和,判斷B是否大于A,否提示錯誤并退出,是則計算之
腳本內容如下:
結果如下:
原創文章,作者:mengzhiqian,如若轉載,請注明出處:http://www.www58058.com/34786
對位置變量總結的詳細,作業完成的也很認真,但是對各個變量之間的差別,更應用場景需要有一個完整的總結哦,