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...