shell必備基礎知識

2021-09-20 22:41:25 字數 1652 閱讀 7200

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

常用的測試項

檢測檔案狀態:

-e:文件存在為真 

-d:目錄存在為真

-f: 檔案存在為真

-r:文件有讀許可權為真

-w:文件有寫許可權為真

-x:文件有執行許可權為真

比較整數大小

-gt:大於

-ge:大於等於

-eq:等於

-ne:不等於

-lt:小於

-le:小於等於

字串比較

==:相等

!=:不相等

區分三種定界符

雙引號"":以$引用其他變數

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

反撇號``:只輸出命令的輸出結果

&& 邏輯與,條件都要成立

|| 邏輯或,只需條件成立其中乙個

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

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

ping -c3 -i0.1 -w3 192.168.4.2

(-c為ping的次數,-i為縮短傳送測試包的間隔秒數,-w為等待反饋的超時秒數)

echo $path 命令全域性模式

Shell 指令碼 基礎知識點 入門必備

命名 shell指令碼以 sh為字尾 shell 是使用 c語言編寫的程式。告訴系統其後路徑所指定的程式即是解釋此指令碼檔案的 shell 程式。指的是根目錄 值得是當前目錄 表示傳入指令碼的引數的個數 shell 數值比較 可以通過這種方式來理解,e eq表示equal即相等的意思。l表示less...

SHELL 基礎知識

1 什麼是shell?shell的本意是 殼 的意思,其實已經很形象地說明了shell在linux系統中的作用。shell就是圍繞在linux核心之外的乙個 殼 程式,使用者在作業系統上完成的所有任務都是通過shell與linux系 統核心的互動來實現的。shell本身是乙個c語言編寫的程式,是使用...

shell 基礎知識

預設變數 傳入指令碼的命令列引數個數 所有命令列引數值,在各個引數值之間留有空格 0 命令本身 shell檔名 1 第乙個命令列引數 2 第二個命令列引數 區域性變數 在變數首次被賦值時加上local 關鍵字可以宣告乙個區域性變數,例s3 bin bash hello var1 echo hello...