說起shell指令碼,免不了用變數。特別是對於這種一堆符號表示變數的語言來說,你不了解一下相關變數的本意,根本無從下手。譬如寫個迴圈遍歷,$#就起了好大作用。所以還是有必要記錄一下,也是對學習的乙個筆記,方便以後查詢。
另外有一些運算子也相當有意思。
//---------------------分割線,下文為筆記內容-------------------------
變數相關的命令
export, readonly
export:用於修改或列印變數
readonly:設定變數為唯讀
替換運算子
$ 如果var存在且非null,返回它的值;否則返回word
$ 如果var存在且非null,返回它的值;否則將word賦值給var,並返回var的值
$ 如果var存在且非null,返回它的值;否則顯示var:word
$ 如果var存在且非null,返回word;否則返回null
注:冒號(:)可省略
模式匹配運算子
$ 匹配字首(最小匹配),並返回餘下內容
$ 匹配字首(最大匹配),並返回餘下內容
$ 匹配結尾(最小匹配),並返回餘下內容
$ 匹配結尾(最大匹配),並返回餘下內容
注:pattern為正規表示式匹配
算術運算子
shell的算術運算子基本上與c一致,就不多說了。
算術運算子可以放置在$((...))裡面,也就是內嵌算術,也稱為算術展開。譬如 echo $((2>1)) 列印結果為1。(1表示真,0表示假)
特殊變數
$#表示變數的個數,常用於迴圈 $
@ 當前命令列所有引數。置於雙引號中,表示個別引數 $
* 當前命令列所有引數。置於雙引號中,表示將命令列所有引數當初乙個單獨引數 $
-(連字型大小) 在引用數給予shell的選項 $
? 表示上乙個命令退出的狀態 $
$ 表示當前程序編號 $
0 表示當前程式名稱 $
! 表示最近乙個後台命令的程序編號
$home
表示當前使用者根目錄
$ifs
表示內部的字段分隔符
$lang
當前locale預設名稱
$path
環境變數
$ppid
父程序編號
$pwd
當前工作目錄
$?的參考值
0 成功退出
>0 退出失敗
1-125 命令退出失敗,失敗返回的相關值由程式定義(譬如,程式內退出只執行 exit 2,則返回為2)
126 命令找到了,但無法執行
127 命令找不到
>128 命令因受到訊號而死亡
Linux Shell運算子總結
shell中的運算子可分為算數運算子 關係運算子 布林運算子 字串運算子和檔案測試運算子 a 2,b 1 operator description example 加法 expr a b 3 減法 expr a b 1 乘法 expr a b 2,需轉義 除法 expr a b 2 取餘 expr ...
Linux shell 基本運算子
shell 運算子包括 算數運算子 關係運算子 布林運算子 字串運算子 檔案測試運算子。expr 是一款表示式計算工具,它能做表示式的求值操作。算術運算子 下表列出了常用的算術運算子,假定變數 a 為 10,變數 b 為 20 運算子 說明 舉例 加法 expr a b 結果為 30。減法 expr...
linux shell 邏輯運算子
一 邏輯卷標 邏輯卷標 表示意思 1.關於檔案與目錄的偵測邏輯卷標!f常用!偵測 檔案 是否存在 eg if f filename d常用!偵測 目錄 是否存在 b偵測是否為乙個 block 檔案 c偵測是否為乙個 character 檔案 s偵測是否為乙個 socket 標籤檔案 l偵測是否為乙個...