shell腳本基礎

shell

shell 是用戶使用 Linux 的橋樑。shell 既是一種命令語言,又是一種程序設計語言。shell 是一個命令解釋器,它的作用是解釋執行用戶的命令,用戶輸入一條命令,shell就解釋執行一條,這種方式稱爲交互式(Interactive)。
shell 腳本(shell script),是指包含一些命令或聲明,並符合一定格式的文本文件。用戶首先寫好一個shell腳本,腳本里有許多條命令,只要執行這個腳本,shell就會把腳本里的命令一次性的執行完成,而不是像每次需要這些命令時再一條一條的敲出來,這樣既費時又費事。shell編寫程序時,與Java編程是一樣的,只要有一個能編寫代碼的文本編輯器和一個能解釋執行的腳本解釋器就可以了。shell執行時,是從腳本中讀取並執行命令,不需要調取源碼。

shell變量

一、變量
全局配置路徑:
/etc/profile
/etc/profile.d/*.sd
/etc/bashrc
/etc/profile.d/env.sh

所有的變量都由字符串組成,用一個字符串,替代更多更復雜的內容 。在變量使用命令時需要加 ' ' 或者$( ),而且變量操作相對比較簡單,不像其他高級編程語言(如C/C++,Java等)那麼複雜。在定義一個新的變量時,一般不予要提前進行聲明,而是直接指定變量名稱並賦予初始值(內容)即可。引用shell變量要用到$符號,加{}可以防止歧義。
變量命名法則:命名只能使用英文字母,數字和下劃線,首個字符不能以數字開頭,不能使用bash裏的關鍵字(可用help命令查看保留關鍵字),使用統一的命名規則:駝峯命名法。
二、常用的shell變量
1、局部變量:生效範圍爲當前shell進程;對當前shell之外的其它shell進程,包括當前shell的子shell進程均無效
查看所有的局部變量:set
2、環境變量:生效範圍爲當前shell進程及其子進程
查看所有的環境變量:env 、export、declare -x
變量聲明、賦值設置方式爲:
export 局部變量名
export 變量名=值
使用export可以將局部變量提升爲環境變量,也可以將局部變量直接賦值給環境變量
簡單實例如下:
shell腳本基礎
3、只讀和位置變量
只讀變量:只能聲明,不能修改和刪除
readonly :可以將變量定義爲只讀變量,只讀變量的值不能被改變
readonly -p:查看只讀變量
位置變量:在腳本代碼中調用通過命令行傳遞給腳本的參數
$1, $2, ...:對應第1、第2等參數,shift [n]換位置
$0: 命令本身
$※:傳遞給腳本的所有參數,全部參數合爲一個字符串
$@: 傳遞給腳本的所有參數,每個參數爲獨立字符串
$#: 傳遞給腳本的參數的個數
$@ $※只在被雙引號包起來的時候纔會有差異
$?:返回上一條命令的執行狀態,0爲執行成功,非0爲失敗
注:※這個符號是個星號,因爲某些原因顯示不了,只好用這個符號代替。
三、刪除變量
unset :取消變量的定義,即可以刪除變量。變量被刪除後不能再次使用,unset 命令不能刪除只讀變量
四、使用變量
變量的用法有很多,只列出兩種舉例。
1、使用一個定義過的變量,只要在變量名前面加$符號即可
shell腳本基礎
有時,變量名是需要加花括號的,加花括號是爲了幫助解釋器識別變量的邊界,如果不給變量加花括號,解釋器就會把命令當成兩個個變量,代碼執行結果不是我們想要的效果。
2、數值變量的運算
常用的幾種運算符:
+:加法計算
-:減法計算
* :乘法計算,注意不能僅用 " " 符號,否則將被當成文件通配符。
/:除法計算
%:求模運算,又稱爲取餘運算,用來計算數值相處後的餘數
shell腳本基礎

shell執行腳本

第一步:使用vim命令,輸入文件路徑,腳本命名爲createsh.sh,打開文本編輯器創建文本文件
1、開頭
點擊鍵盤的" i " ,進入插入編輯模式
第一行必須包含shell聲明序列:#!
#!/bin/bash
"#!" 學術術語叫shabang,/bin/bash是shell解釋器,作用是解釋這個腳本是調用哪門語言編寫的。
shell腳本開頭註釋用"#"表示,註釋的作用是解釋用途,文本里有許多這樣的註釋。在這裏,是在告訴我們一下腳本的信息,這個在shell腳本里很重要。
開頭註釋包括以下幾部分:
1、shabang
2、程序名,避免更改文件名時無法找到正確的文件
3、版本號
4、更改後的時間
5、作者相關信息
6、該程序的作用和注意事項
7、各版本的更新簡要說明
開頭註釋只要編寫需求的部分即可。
實例如下:
shell腳本基礎
chmod +x $1:賦予腳本權限
echo >> $1 :重定向,執行命令時創建指定的新文件
2、退出腳本
點擊Esc,再" shift+: "進入退出模式,輸入以下命令:
q :只退出不保存
q! :強制退出不保存
w :保存
w! :強制保存
wq或x :保存並退出
wq!或x! :強制保存並退出
注意:w! 和 wq! 僅限root及文件的owner
第二步:運行腳本
1、使用chmod命令,給予腳本執行權限,在命令行上輸入腳本的絕對或相對路徑
shell腳本基礎
2、檢測腳本中的語法錯誤並調試執行,主要是檢查腳本有沒有錯誤。
bash -n /root/bin/createsh.sh
bash -x /root/bin/createsh.sh
shell腳本基礎
3、執行腳本,本腳本的功能是爲以後編寫腳本做準備,只需在命令提示符輸入/root/bin/createsh.sh backup.sh,執行後,會在/root/bin下生成一個backup.sh的文件,其中自帶開頭註釋內容,然後自動用vim打開該文件,且光標直接位於非註釋部分下的新行。
vim backup.sh : 打開/root/bin/backup.sh腳本
shell腳本基礎
最後,注意命名時要統一,文件名都要以.sh結尾,方便識別,變量名字要有含義,不要拼錯等。

shell實例

1、編寫腳本/root/bin/sumid.sh,計算/etc/passwd文件中的第10個用戶和第20用戶的ID之和
shell腳本基礎
shell腳本基礎
2、編寫腳本/root/bin/systeminfo.sh,顯示當前主機系統信息,包括主機名,IPv4地址,操作系統版本,內核版本,CPU型號,內存大小,硬盤大小
主機名: hostname
ipv4地址: ifconfig
操作系統版本: /etc/redhat-release Centos 6.9 或 Centos 7.5
內核版本:uname -r
CPU型號:lscpu
內存大小: MB free
硬盤大小: fdisk -l /dev/sda
shell腳本基礎
shell腳本基礎

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章