您好,登錄后才能下訂單哦!
Shell語言的總結
Shell變量
1.用戶自定義 :標示符
從右向左賦值
引用變量 $
清除變量 $unset Z
例如 $count= 1
$echo$HOME
2.命令行參數變量
$0 與鍵入行的命令行一樣,包含腳本文件名
$1 第一個參數
$2
$3
3.位置變量
$@ 包含所含命令行參數 “$1 $2 $3 $4 $5 $6 $7$8¥9”
$* 所包含命令行的參數 “$1 $2 $3 $4 $5 $6 $7$8¥9”
$# 包含命令行參的個數
$? 包含前一個命令的退出狀態
$$ 包含正在執行進程的號
4.環境變量:env
$PATH shell的搜索路徑
$HOME /etc/passwd文件中列出的用戶目錄
$IFS 默認為空格 tab及換行符
$TERM 終端類型 常用的有vt100,ansi,vt200.xterm
二
Shell語句
1.說明性語句 #xxxxxxx
2.功能性語句 read(從標準輸入讀入一行)
Expr(算術運算命令)
Test(文件屬性 字符串 整數)
1.test $name -eq $1
echo $?
2if test -f $filename
then
……
Fi
3if [ -f $filename ]
then
……
fi
4.整數測試
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 文件是否存在且為可執行
-s name 測試name 文件是否存在且其長度不為0
f1 -nt f2 測試文件f1 是否比文件f2 更新
f1 -ot f2 測試文件f1 是否比文件f2 更舊
三.結構性語句
1. If 模式
Then
fi
2.if 表達式
Then
命令表
Else
命令表
Fi
記住 -f檢測是否為文件 -d檢測是否為目錄
4.分之語句
Case 字符串變量 in(case只能檢測字符串變量)
常量字符串) //變量名等于 常量字符串則執行命令一
命令表1
;;
常量字符串)
命令表2;;
常量字符串)
命令表3
;;
常量字符串)
命令表4
;;
×) //*表示其他模式
命令5
;;
esac
5循環語句
A)for變量名 in 變量列表
Do
命令表
Done
變量依次取單詞表中的各個單詞, 每取一次單詞, 就執行一次循環體中的命令. 循環次數由單詞表中的單詞數確定. 命令表中的命令可以是一條, 也可以是由分號或換行符分開的多條。如果單詞表是命令行上的所有位置參數時, 可以在for語句中省略 “in 單詞表” 部分。直到變量名把變量列表中的所有變量都取到了 循環體才會結束
6while 表達式
Do
命令表 // 表達式為真 執行命令表
Done
while語句首先測試其后的命令或表達式的值,如果為真,就執行一次循環體中的命令,然后再測試該命令或表達式的值,執行循環體,直到該命令或表達式為假時退出循環。
while語句的退出狀態為命令表中被執行的最后一條命令的退出狀態。
7.until 表達式
Do
命令表 //表達式為假 直到表達式為真則 退出循環
Done
until循環與while循環的功能相似, 所不同的是只有當測試的命令或表達式的值是假時, 才執行循環體中的命令表, 否則退出循環. 這一點與while命令正好相反
8break and continue
配合循環語句 混合使用
break n 則跳出n層;
continue語句則馬上轉到最近一層循環語句的下一輪循環上,
continue n則轉到最近n層循環語句的下一輪循環上
Shell函數
shell 函數
1.函數定義方式
function_name()
{
命令列表//發揮空間
}
function function_name() //這種不常用
{
命令列表//發揮空間
}
2.函數的參數傳遞
function_name 12 $value ..
12:函數體內引用12 ,用 $1 表示
value:函數體內引用 value ,用 $2 表示
3.函數返回值調用
代表函數的返回狀態 :$?
1)有 return 的函數 $? 表示 return 的值
2)沒有 return 的函數,$? 函數體內最后一條指令的返回狀態
4.函數輸出內容引用
通過反單撇號來引用函數輸出,一般為字符串
count=`function_name $value`
5.函數的返回值
Fun $value
Echo $?
Shell變量的作用域
1.局部變量 作用于函數體內
關鍵字 local
2.全局變量 作用于腳本內部任何地
初始化以后的該變量的內容 否則為空
Count= 5
3.獨立于腳本文件外的
關鍵字 export
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。