在linux中,shell腳本是一種編程方式,就是一些命令的集合。shell腳本將一些shell語法與指令寫在里面,利用管道命令以及流量重導(dǎo)向等功能,達(dá)到想要的處理目的,是臨時寫的小程序用于完成當(dāng)前的工作。
本教程操作環(huán)境:linux7.3系統(tǒng)、Dell G3電腦。
linux中什么是shell腳本
一.shell腳本的概念及意義
shell腳本是linux下的一種編程方式,腳本(shell?script)是利用shell的功能所寫的一個程序,這個程序是使用純文本文件,將一些shell的語法與指令寫在里面,然后用正規(guī)表示法,管道命令以及數(shù)據(jù)流重導(dǎo)向等功能,以達(dá)到我們所想要的處理目的。說白了,就是為了解決linux的實際問題,臨時寫的一個小程序來完成當(dāng)前的工作,如果需要多次使用,還能保存下來循環(huán)使用。
二.腳本的規(guī)范
腳本使用了shebang機(jī)制,即這樣的格式:!#/bin/bash、!#/use/bin/python。需要簡單的進(jìn)行shell腳本的解釋。下面舉一個樣例:
#!/bin/bash #?—————————————— #?Filename:?hello.sh #?Revision:?1.1 #?Date:?2017/08/05 #?Author:?Mr.Dong #?Email:?Dong@gmail.com #?Website:?www.magedu.com #?Description:?This?is?the?first?script #?—————————————— echo?“hello?world”
利用這些信息,可以很快知道這個腳本的用處,以便于工作的使用。
在運行的時候可以使用下面兩條命令進(jìn)行腳本調(diào)試
bash?-n?hello.sh?來查看腳本的語法錯誤
bash?-x?hello.sh?可以查看腳本的執(zhí)行步驟
三.變量
1.本地變量
本地變量只對當(dāng)前shell有效,對子shell無效(SHLVL查看是幾級shell)。
變量賦值:name=’value’
字符串賦值:name=”root”
變量引用:name=”$USER”
命令引用:name=COMMAND?name=$(COMMAND)
顯示已定義的所有變量:set
刪除變量:unset?name
2.環(huán)境變量
環(huán)境變量對當(dāng)前SHELL及其子SHELL均有效。
變量的聲明和賦值命令:
export?name=VALUE declare?-x?name=VALUE
變量的引用:$name,${name}
顯示所有的環(huán)境變量命令:
env?printenv?export?declare?-x
bash自帶環(huán)境變量:
PATH?SHELL?USER?UID?HOME?PWD?SHLVL?LANG?MAIL?HOSTNAME?HISTSIZE
3.只讀變量
聲明只讀變量:
readonly?name declare?-r?name
查看只讀變量:?readonly?-p
4.位置變量
$1,?$2,?…?:對應(yīng)第1?、第2?等參數(shù),shift?[n]?換位置
$0:??命令本身
$:??傳遞給腳本的所有參數(shù),全部參數(shù)合為一個字符串
$@:??傳遞給腳本的所有參數(shù),每個參數(shù)為獨立字符串
$#:??傳遞給腳本的參數(shù)的個數(shù)
$@?$??只在被雙引號包起來的時候才會?有?差異
set?—
四.算術(shù)運算與邏輯運算
1.算術(shù)運算
算數(shù)運算符:+?–?*?/?%(取余)?**(乘方)
常用的運算:
(1)?let?var=?算術(shù)表達(dá)式
(2)?var=$[?算術(shù)表達(dá)式]
(3)?var=$((?算術(shù)表達(dá)式))
(4)?var=$(expr?arg1?arg2?arg3?…)
(5)?declare?–i?var?=??數(shù)值
(6)?echo?‘?算術(shù)表達(dá)式’?|?bc
產(chǎn)生隨機(jī)數(shù)命令:echo?$[$RANDOM%number]??0-number之間的隨機(jī)數(shù)
賦值運算:+=?-=?*=?/=?%=
自增和自減:
let?var+=1 let?var++ let?var-=1 let?var–
2.邏輯運算
true=0?false=1
與?1&&1=1?1&&0=0?0&&1=0?0&&0=0
或?1||1=1?1||0=1?0||1=1?0||0=0
非?!1=0?!0=1
五.test命令
test命令是shell環(huán)境中測試條件表達(dá)式的實用工具。
例如:
test?“$A”?==?“$B”?&&?echo?“Strings?are?equal” [?“$A”?==?“$B”?]?&&?echo?“Strings?are?equal”
這兩種表述表達(dá)同一種意思。
[[??]]表示支持正則表達(dá)式
數(shù)值比較:?????????字符串比較:
-gt?是否大于??????>
-ge?是否大于等于??>=
-eq?是否等于??????==
-ne?是否不等于????!=
-lt?是否小于??????
-le?是否小于等于??
相關(guān)推薦:《Linux視頻教程》