Linux Shell的運算子和特殊變數

2021-09-20 14:39:15 字數 1534 閱讀 2237

說起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偵測是否為乙個...