天天看點

shell必備基礎知識

shell腳本
規範的shell腳本的一般組成。
 #!環境聲明

    重定向出輸出:
>:隻收集前面指令的正确輸出
<:重定向輸入
>:覆寫
>>:追加       
2>:隻收集前面指令的錯誤輸出
&>:收集前面指令的錯誤與正确的輸出
>2&:将錯誤的變成正确的輸出
>&2:将正确的變為錯誤的輸出

/dev/null  黑洞路徑           

變量:以不變的名稱存放的可能會變化的值。

變量=變化的值

使用變量:$變量名

注意:1.若指定的變量已存在,相當于為此變量重新指派。

2.等号兩邊不要有空格。

3.變量名不能以數字開頭,不要使用關鍵字元。

檢視變量:echo $變量名

變量的種類:

1.位置變量 ($1 $2......)

在執行腳本時提供的指令參數(非互動傳值)

2.預定義變量

用來儲存腳本程式的執行資訊

直接使用,不能直接為這些變量指派。

3.環境變量

pwd、USERD、HOME、SHELL

sh和bash 開啟一個子程序

export 全局模式下的變量建立

export x=123

export -n 取消全局變量

export SCHOOL 釋出已定義的變量

read -p "提示資訊" 變量名

-p:可選

-t:可指定逾時秒數

可以産生互動,将鍵盤輸入的内容指派給變量

stty -echo 關閉回顯(不顯示字幕)

stty echo 打開回顯

$$:目前運作程序的PID号
$#:已加載的位置變量的個數
$*:所有位置變量的值
$?:指令執行後的判斷,0正常,非0異常
$0:目前所在的程序或腳本名
$!:查詢最後一個程序的PID

    dirname $0,擷取目前Shell程式的路徑           

cd

dirname $0

,進入目前Shell程式的目錄

常用的測試項

檢測檔案狀态:

-e:文檔存在為真

-d:目錄存在為真

-f: 檔案存在為真

-r:文檔有讀權限為真

-w:文檔有寫權限為真

-x:文檔有執行權限為真

比較整數大小

-gt:大于

-ge:大于等于

-eq:等于

-ne:不等于

-lt:小于

-le:小于等于

字元串比較

==:相等

!=:不相等

區分三種定界符

雙引号"":以$引用其他變量

單引号'':把特殊字元變為普通字元輸出

反撇号``:隻輸出指令的輸出結果

&& 邏輯與,條件都要成立 (-a)

|| 邏輯或,隻需條件成立其中一個(-o)

!-n或-z檢查變量的值是否為空值

-n或!-z檢查變量的值是否為非空值