shell介紹

1.簡介

????Shell 是一個(gè)用 C 語言編寫的程序,它是用戶使用 Linux 的橋梁。Shell 既是一種命令語言,又是一種程序設(shè)計(jì)語言。

????Shell 是指一種應(yīng)用程序,這個(gè)應(yīng)用程序提供了一個(gè)界面,用戶通過這個(gè)界面訪問操作系統(tǒng)內(nèi)核的服務(wù)。

????Ken Thompson 的 sh 是第一種 Unix Shell,Windows Explorer 是一個(gè)典型的圖形界面 Shell。

2.什么是shell腳本

????腳本就是shell命令組成的文件,這些命令都是可執(zhí)行程序的名字,腳本不用編譯即可通過解釋器解釋運(yùn)行。

?它是一種解釋型語言,我們可以用shell腳本操存執(zhí)行動(dòng)作,用腳本判定命令的執(zhí)行條件,用腳本來實(shí)現(xiàn)動(dòng)作的批量執(zhí)行。Shell腳本與Windows/Dos下的批處理相似,也就是用各類命令預(yù)先放入到一個(gè)文件中,方便一次性執(zhí)行的一個(gè)程序文件,主要是方便管理員進(jìn)行設(shè)置或者管理用的。但是它比Windows下的批處理更強(qiáng)大,比用其他編程程序編輯的程序效率更高,它使用了Linux/Unix下的命令。

3.如何創(chuàng)建shell腳本

????(1)腳本的開頭:

? ? ? ? 為了便于腳本的使用者可以快捷的了解到腳本的用途與其使用的解釋器,通常我們需要在腳本的開頭加上注釋

第一行必須寫? #!/bin/bash

#!/bin/bash? ? ? ?腳本使用的解釋器,通常用“#”指定

#Autho? ? ? ? ? ? ? 腳本作者

#Create_data? ?腳本創(chuàng)作時(shí)間

#Mail? ? ? ? ? ? ? ? ?腳本作者聯(lián)系方式

#Description? ? ? 腳本作用解釋

#Version? ? ? ? ? ? 腳本的版本

? ? (2)腳本命名格式

腳本名稱使用 .sh 結(jié)尾

????(3)腳本的內(nèi)容

? ? ? ? 在shell腳本中可以出現(xiàn)任何系統(tǒng)命令,輸入你想要執(zhí)行的命令即可

vim a.sh

4.if語句

? ? 單條件語句格式:

if? [? 條件? ]? ? # 開始

then

語句

else

語句

fi? ? ? ? ? ? ? ? ? ? # 結(jié)束

注意:

? ??if后面有空格

? ? 條件兩邊有空格

? ? if條件里面存在變量,需要$,而且變量兩邊需要雙引號(hào)

? ? fi是結(jié)束標(biāo)時(shí)

? ? 案例:判斷用戶輸入的用戶名(name)和密碼(password)是否為****soon 和 123,****如果是則提示登錄成功(Yes),否則提示失?。∟o)

? ? 多條件語句格式:

if [ 條件 ]?

then

語句

elif? [? 條件? ]

then

語句

......

else

語句

fi

案例: 輸入學(xué)生的成績,80<score<=100提示very good,60<score<=80提示good,其他則提示不及格

#!/bin/bash

read? -p? "input score " score

if [ "$score" -gt 80 -a "$score" -le 100 ]

then

echo "very good"

elif [ "$score" -gt 60 -a "$score" -le 80 ]

then

echo "good"

else

echo "not good"

fi

5.比較運(yùn)算符和邏輯運(yùn)算符

? ??1)比較運(yùn)算符(數(shù)字)

? ? ?-eq 比較是否相等equal-ne 比較不相等? ? ? ? ??

? ? ?notequal-gt 比較大于? ? ? ? ? ??

? ? ?greater than-ge? 比較大于等于? ? ??

?????greaterequal-lt? 比較小于? ? ? ? ??

? ? ?less than-le? 比較小于等于? ? ??

?????lessequal

(2)比較運(yùn)算符(字符串)

????==? 比較是否相等

????!=? 比較不相等

????加一操作:((i++))((i+=1))

????加n操作:s=$(($s+$i))s=$[$s+$i]((s=$s+$i))

(3)邏輯運(yùn)算符

????-a? 邏輯與? ? -o邏輯或? ? ? !邏輯非

????and? ? ? ? ? ? or? ? ? ? ? ?

6.case規(guī)則

格式:

case $變量名 in

"值")

語句;;

"值")

語句;;

.....

esac

注意:

????case這第一行以in結(jié)尾?

????值可以是字符串也可以是數(shù)字,如果數(shù)字范圍[0-9]?

????結(jié)束語句;;

????esac結(jié)束標(biāo)志

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容