您好,登錄后才能下訂單哦!
Shell語(yǔ)言的總結(jié)
Shell變量
1.用戶自定義 :標(biāo)示符
從右向左賦值
引用變量 $
清除變量 $unset?。?/span>
例如 $count= 1
$echo$HOME
2.命令行參數(shù)變量
$0 與鍵入行的命令行一樣,包含腳本文件名
$1 第一個(gè)參數(shù)
$2
$3
3.位置變量
$@ 包含所含命令行參數(shù) “$1 $2 $3 $4 $5 $6 $7$8¥9”
$* 所包含命令行的參數(shù) “$1 $2 $3 $4 $5 $6 $7$8¥9”
$?!“钚袇⒌膫€(gè)數(shù)
$? 包含前一個(gè)命令的退出狀態(tài)
$$ 包含正在執(zhí)行進(jìn)程的號(hào)
4.環(huán)境變量:env
$PATH ?。螅瑁澹欤斓乃阉髀窂?/span>
$HOME ?。澹簦悖穑幔螅螅鳎湮募辛谐龅挠脩裟夸?/span>
$IFS 默認(rèn)為空格 tab及換行符
$TERM 終端類型 常用的有vt100,ansi,vt200.xterm
二
Shell語(yǔ)句
1.說(shuō)明性語(yǔ)句 ?。#?/span>
2.功能性語(yǔ)句 ?。颍澹幔洌◤臉?biāo)準(zhǔn)輸入讀入一行)
Expr(算術(shù)運(yùn)算命令)
?。裕澹螅簦ㄎ募傩浴∽址≌麛?shù))
1.test $name -eq $1
echo $?
2if test -f $filename
then
……
Fi
3if [ -f $filename ]
then
……
fi
4.整數(shù)測(cè)試
a -eq b 測(cè)試a 與b 是否相等
a -ne b測(cè)試a 與b 是否不相等
a -gt b 測(cè)試a 是否大于b
a -ge b 測(cè)試a 是否大于等于b
a -lt b 測(cè)試a 是否小于b
a -le b 測(cè)試a 是否小于等于b\
5.文件測(cè)試
-d name 測(cè)試name 是否為一個(gè)目錄
-f name 測(cè)試name 是否為普通文件
-L name測(cè)試name 是否為符號(hào)鏈接
-r name 測(cè)試name 文件是否存在且為可讀
-w name 測(cè)試name 文件是否存在且為可寫(xiě)
-x name 測(cè)試name 文件是否存在且為可執(zhí)行
-s name 測(cè)試name 文件是否存在且其長(zhǎng)度不為0
f1 -nt f2 測(cè)試文件f1 是否比文件f2 更新
f1 -ot f2 測(cè)試文件f1 是否比文件f2 更舊
三.結(jié)構(gòu)性語(yǔ)句
1.?。桑妗∧J?/span>
?。裕瑁澹?/span>
?。妫?/span>
2.if 表達(dá)式
Then
命令表
?。牛欤螅?/span>
命令表
?。疲?/span>
記住?。鏅z測(cè)是否為文件 ?。錂z測(cè)是否為目錄
4.分之語(yǔ)句
Case 字符串變量?。椋睿ǎ悖幔螅逯荒軝z測(cè)字符串變量)
常量字符串) //變量名等于 常量字符串則執(zhí)行命令一
命令表1
;;
常量字符串)
命令表2;;
常量字符串)
命令表3
;;
常量字符串)
命令表4
;;
×) //*表示其他模式
命令5
;;
esac
5循環(huán)語(yǔ)句
A)for變量名?。椋睢∽兞苛斜?/span>
?。模?/span>
命令表
Done
變量依次取單詞表中的各個(gè)單詞, 每取一次單詞, 就執(zhí)行一次循環(huán)體中的命令. 循環(huán)次數(shù)由單詞表中的單詞數(shù)確定. 命令表中的命令可以是一條, 也可以是由分號(hào)或換行符分開(kāi)的多條。如果單詞表是命令行上的所有位置參數(shù)時(shí), 可以在for語(yǔ)句中省略 “in 單詞表” 部分。直到變量名把變量列表中的所有變量都取到了 循環(huán)體才會(huì)結(jié)束
6while 表達(dá)式
Do
命令表 ?。 ”磉_(dá)式為真 執(zhí)行命令表
Done
while語(yǔ)句首先測(cè)試其后的命令或表達(dá)式的值,如果為真,就執(zhí)行一次循環(huán)體中的命令,然后再測(cè)試該命令或表達(dá)式的值,執(zhí)行循環(huán)體,直到該命令或表達(dá)式為假時(shí)退出循環(huán)。
while語(yǔ)句的退出狀態(tài)為命令表中被執(zhí)行的最后一條命令的退出狀態(tài)。
7.until 表達(dá)式
?。模?/span>
命令表 //表達(dá)式為假 直到表達(dá)式為真則 退出循環(huán)
Done
until循環(huán)與while循環(huán)的功能相似, 所不同的是只有當(dāng)測(cè)試的命令或表達(dá)式的值是假時(shí), 才執(zhí)行循環(huán)體中的命令表, 否則退出循環(huán). 這一點(diǎn)與while命令正好相反
8break ?。幔睿洹 。悖铮睿簦椋睿酰?/span>
配合循環(huán)語(yǔ)句 混合使用
break n 則跳出n層;
continue語(yǔ)句則馬上轉(zhuǎn)到最近一層循環(huán)語(yǔ)句的下一輪循環(huán)上,
continue n則轉(zhuǎn)到最近n層循環(huán)語(yǔ)句的下一輪循環(huán)上
Shell函數(shù)
shell 函數(shù)
1.函數(shù)定義方式
function_name()
{
命令列表//發(fā)揮空間
}
function function_name() //這種不常用
{
命令列表//發(fā)揮空間
}
2.函數(shù)的參數(shù)傳遞
function_name 12 $value ..
12:函數(shù)體內(nèi)引用12 ,用 $1 表示
value:函數(shù)體內(nèi)引用 value ,用 $2 表示
3.函數(shù)返回值調(diào)用
代表函數(shù)的返回狀態(tài) :$?
1)有 return 的函數(shù) $? 表示 return 的值
2)沒(méi)有 return 的函數(shù),$? 函數(shù)體內(nèi)最后一條指令的返回狀態(tài)
4.函數(shù)輸出內(nèi)容引用
通過(guò)反單撇號(hào)來(lái)引用函數(shù)輸出,一般為字符串
count=`function_name $value`
5.函數(shù)的返回值
Fun $value
Echo $?
Shell變量的作用域
1.局部變量 作用于函數(shù)體內(nèi)
關(guān)鍵字?。欤铮悖幔?/span>
2.全局變量 作用于腳本內(nèi)部任何地
初始化以后的該變量的內(nèi)容 否則為空
Count= 5
3.獨(dú)立于腳本文件外的
關(guān)鍵字?。澹穑铮颍?/span>
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。