Shell語言的總結
成都創(chuàng)新互聯(lián)專注于萬山企業(yè)網(wǎng)站建設,響應式網(wǎng)站設計,商城系統(tǒng)網(wǎng)站開發(fā)。萬山網(wǎng)站建設公司,為萬山等地區(qū)提供建站服務。全流程定制制作,專業(yè)設計,全程項目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務Shell變量
1.用戶自定義 :標示符
從右向左賦值
引用變量 $
清除變量 $unset?。?/p>
例如 $count= 1
$echo$HOME
2.命令行參數(shù)變量
$0 與鍵入行的命令行一樣,包含腳本文件名
$1 第一個參數(shù)
$2
$3
3.位置變量
$@ 包含所含命令行參數(shù) “$1 $2 $3 $4 $5 $6 $7$8¥9”
$* 所包含命令行的參數(shù) “$1 $2 $3 $4 $5 $6 $7$8¥9”
$?!“钚袇⒌膫€數(shù)
$? 包含前一個命令的退出狀態(tài)
$$ 包含正在執(zhí)行進程的號
4.環(huán)境變量:env
$PATH ?。螅瑁澹欤斓乃阉髀窂?/p>
$HOME ?。澹簦悖穑幔螅螅鳎湮募辛谐龅挠脩裟夸?/p>
$IFS 默認為空格?。簦幔饧皳Q行符
$TERM 終端類型 常用的有vt100,ansi,vt200.xterm
二
Shell語句
1.說明性語句 ?。#?/p>
2.功能性語句 ?。颍澹幔洌◤臉藴瘦斎胱x入一行)
?。牛穑颍ㄋ阈g運算命令)
Test(文件屬性 字符串 整數(shù))
1.test $name -eq $1
echo $?
2if test -f $filename
then
……
Fi
3if [ -f $filename ]
then
……
fi
4.整數(shù)測試
a -eq b 測試a 與b 是否相等
a -ne b測試a 與b 是否不相等
a -gt b 測試a 是否大于b
a -ge b 測試a 是否大于等于b
a -lt b 測試a 是否小于b
a -le b 測試a 是否小于等于b\
5.文件測試
-d name 測試name 是否為一個目錄
-f name 測試name 是否為普通文件
-L name測試name 是否為符號鏈接
-r name 測試name 文件是否存在且為可讀
-w name 測試name 文件是否存在且為可寫
-x name 測試name 文件是否存在且為可執(zhí)行
-s name 測試name 文件是否存在且其長度不為0
f1 -nt f2 測試文件f1 是否比文件f2 更新
f1 -ot f2 測試文件f1 是否比文件f2 更舊
三.結構性語句
1.?。桑妗∧J?/p>
?。裕瑁澹?/p>
fi
2.if 表達式
Then
命令表
Else
命令表
Fi
記住?。鏅z測是否為文件 ?。錂z測是否為目錄
4.分之語句
Case 字符串變量?。椋睿ǎ悖幔螅逯荒軝z測字符串變量)
常量字符串) ?。兞棵扔凇〕A孔址畡t執(zhí)行命令一
命令表1
;;
常量字符串)
命令表2;;
常量字符串)
命令表3
;;
常量字符串)
命令表4
;;
×) ?。硎酒渌J?/p>
命令5
;;
esac
5循環(huán)語句
A)for變量名?。椋睢∽兞苛斜?/p>
Do
命令表
Done
變量依次取單詞表中的各個單詞, 每取一次單詞, 就執(zhí)行一次循環(huán)體中的命令. 循環(huán)次數(shù)由單詞表中的單詞數(shù)確定. 命令表中的命令可以是一條, 也可以是由分號或換行符分開的多條。如果單詞表是命令行上的所有位置參數(shù)時, 可以在for語句中省略 “in 單詞表” 部分。直到變量名把變量列表中的所有變量都取到了 循環(huán)體才會結束
6while 表達式
?。模?/p>
命令表 // 表達式為真 執(zhí)行命令表
Done
while語句首先測試其后的命令或表達式的值,如果為真,就執(zhí)行一次循環(huán)體中的命令,然后再測試該命令或表達式的值,執(zhí)行循環(huán)體,直到該命令或表達式為假時退出循環(huán)。
while語句的退出狀態(tài)為命令表中被執(zhí)行的最后一條命令的退出狀態(tài)。
7.until 表達式
Do
命令表 ?。磉_式為假 直到表達式為真則 退出循環(huán)
Done
until循環(huán)與while循環(huán)的功能相似, 所不同的是只有當測試的命令或表達式的值是假時, 才執(zhí)行循環(huán)體中的命令表, 否則退出循環(huán). 這一點與while命令正好相反
8break and ?。悖铮睿簦椋睿酰?/p>
配合循環(huán)語句 混合使用
break n 則跳出n層;
continue語句則馬上轉到最近一層循環(huán)語句的下一輪循環(huán)上,
continue n則轉到最近n層循環(huán)語句的下一輪循環(huán)上
Shell函數(shù)
shell 函數(shù)
1.函數(shù)定義方式
function_name()
{
命令列表//發(fā)揮空間
}
function function_name() //這種不常用
{
命令列表//發(fā)揮空間
}
2.函數(shù)的參數(shù)傳遞
function_name 12 $value ..
12:函數(shù)體內引用12 ,用 $1 表示
value:函數(shù)體內引用 value ,用 $2 表示
3.函數(shù)返回值調用
代表函數(shù)的返回狀態(tài) :$?
1)有 return 的函數(shù) $? 表示 return 的值
2)沒有 return 的函數(shù),$? 函數(shù)體內最后一條指令的返回狀態(tài)
4.函數(shù)輸出內容引用
通過反單撇號來引用函數(shù)輸出,一般為字符串
count=`function_name $value`
5.函數(shù)的返回值
Fun $value
Echo $?
Shell變量的作用域
1.局部變量 作用于函數(shù)體內
關鍵字?。欤铮悖幔?/p>
2.全局變量 作用于腳本內部任何地
初始化以后的該變量的內容 否則為空
Count= 5
3.獨立于腳本文件外的
關鍵字?。澹穑铮颍?/p>
新聞標題:shell腳本總結-創(chuàng)新互聯(lián)
網(wǎng)站URL:http://aaarwkj.com/article16/jssgg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供服務器托管、云服務器、營銷型網(wǎng)站建設、響應式網(wǎng)站、定制網(wǎng)站、網(wǎng)頁設計公司
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內容