shell編程規範與變量
將要執行的命令按順序保存到一個文本文件,給該文件一個可執行權限,便可運行。
shell腳本的構成:
1)腳本申明:腳本聲明是指明用哪個解釋器來解釋
2)註釋信息:註釋信息是指明這個腳本的一些說明信息。就知道這個腳本時幹什麽用的了,這個信息不執行
3)可執行語句:進行執行的一些命令
執行shell腳本的方式
1)絕對路徑
2)相對路徑
3)sh 腳本路徑
4)source 腳本路徑
註意:其中,絕對路徑與相對路徑實行shell腳本時,該腳本文件必須要有可執行權限。Source腳本路徑的方法,只在當前環境生效。
管道操作符 “|”
將左側的命令輸出結果,作為右側命令的處理對象
統計passwd中的行數 cat /etc/passwd | wc –l
重定向(三種類型)
標準輸入(/dev/stdin):鍵盤輸入的數據就是標準輸入
標準輸出(/dev/stdout):顯示器輸出的數據就是標準輸出
標準錯誤(/dev/stderr):顯示器上顯示錯誤信息就是標準錯誤
重定向輸入:
1)先創建一個mima.tx文本,然後重定向給某個用戶作為密碼
pass 用戶名 < mima.txt
註:密碼要求必須符合系統默認要求,否則會報錯密碼更改終止。
重定向輸出:
1)把指定路徑下的文件或者直接輸入的文本重定向輸入到指定文件
echo "wo zui shuai " > test.txt
2)重定向追加,將輸出文本或者內容追加到指定的文本內容之後
echo "da jia dou shuai " >> test.txt
註:這樣就會不影響該文本原有的內容,還能添加上新內容,只不過是在原內容之後。
標準錯誤輸出:
1)當查詢不存在的文件或者目錄時會提示,無法訪問,沒有那個文件或目錄。
2)使用重定向將以上截圖報錯信息輸出到err.txt文本中(默認沒有這個文本)
3)輸出報錯信息需要使用2>才能輸出
混合輸出:
1)同時輸出兩種以上不同的輸出,比如同時輸出錯誤輸出和標準輸出
自定義變量(由用戶自己定義、修改和使用)
1)定義x等於123,這裏使用echo命令
2)繼續上一步操作並顯示新添加的456
註:以上截圖中的引號中兩個數值之間有空格,反之不顯示,會失敗。
3)如果想實現123456這樣連續輸出的話,操作如下兩種(括號不同)
4)計算加減乘除使用expr命令,直接加法如下格式
5)使用變量計算加法如下格式
6)將命令設成變量查看統計系統所有用戶數
定義變量和輸出
1)輸入格式:read 【-p “提示信息”】變量名
註:這裏的懶寶寶是變量,而且是通過輸入方式添加變量並先給予變量名x
2)使用兩個變量相加,通過expr命令實現
變量的算數運算
變量的數值多用於腳本程序的過程控制,只能進行簡單的整數運算,不支持小數運算,整數值的運算主要通過內部命令expr進行。格式:expr 變量1 運算符 變量2 運算符 ...
1)使用expr命令實現加減算數運算
2)使用expr命令實現乘除算數運算(包括余數)
註:從上邊的截圖中可以看見,乘法需要使用轉義符\,才能識別進行運算;而除法應該是3.7.0…因為只能取整數,所以取3;而由123除以456答案應該是小數,但是卻等於0,原因是這個命令不支持小數;最後計算456除以123的余數為87
預定義變量
預定義變量是bash程序預先定義好的一類特殊變量,用戶只能使用預定義變量,而不能創建新的預定義變量,也不能直接為預定義變量賦值。
$0 這個程式的執行名字
$n 這個程式的第n個參數值,n=1..9
$ 這個程式的所有參數,此選項參數可超過9個。
$# 這個程式的參數個數
$$ 這個程式的PID(腳本運行的當前進程ID號)
$! 執行上一個背景指令的PID(後臺運行的最後一個進程的進程ID號)
$? 執行上一個指令的返回值 (顯示最後命令的退出狀態。0表示沒有錯誤,其他任何值表明有錯誤)
$- 顯示shell使用的當前選項,與set命令功能相同
$@ 跟$類似,但是可以當作數組用
環境變量
環境變量指的是出於運行需要而由linux系統提前創建的一類變量,主要用於設置用戶的工作環境。使用env命令可以查看到當前工作環境下的環境變量。PATH變量用於設置可執行程序的默認搜索路徑。環境變量的全局配置文件為/etc/profile,每個用戶還有自己的獨立配置文件~ /.bash_profile
shell編程規範與變量