shell指令碼程式設計 特殊字元

2022-08-29 05:03:16 字數 2719 閱讀 3150

shell中除了普通字元外,還有很多具有特殊含義和功能的字元

1.萬用字元

*: 任意長度的字串

?: 匹配任一單個字元

: 匹配其中的任意乙個字元,例如:[abc]匹配a或b或c, 也可這樣表示[a-z], 但'-'外只是乙個普通字元,*?在中也變成了普通字元.

2.引號

單引號' : 稱為 強引用 或 全引用, 在'...' 中的所有字元都視作普通字元,包括($)(\)(`),但 '  不能出現在'...'中,否則shell無法判斷單引號的起始位置.

雙引號": 稱為 弱引用 或 部分引用, 在"..."中除了($)(\)(`)保留其特殊用途外,其餘字元都作為普通字元處理.

3.注釋符

#: 以#開頭的部分shell直譯器都會略過.但#!除外.

#!: 其後跟執行此指令碼的可執行程式(直譯器),而且#!必須在指令碼的第一行.

4.大括號

大括號的變數擴充套件:

$取出變數var的值

$如果var沒有定義,則以$default作為其值

$如果var沒有定義,或者值為空,則以$default作為其值

$如果定義了var,則值為$value,否則為空字串

$如果定義了var並且不為空值,則值為$value,否則為空字串

$如果var沒有被定義,則列印$msg

$如果var沒有被定義或未賦值,則列印$msg$$

匹配所有以prefix開頭的變數

$返回$str的長度

$從位置$position處提取字串

$從位置$position處提取長度為$length的字串

$從變數$str的開頭處開始尋找,刪除最匹配$substr的字串

$從變數$str的開頭處開始尋找,刪除最匹配$substr的字串

$從變數$str的結尾處開始尋找,刪除最匹配$substr的字串

$從變數$str的結尾處開始尋找,刪除最匹配$substr的字串

$使用$replace替換第乙個匹配的$substr

$使用$replace替換所有匹配的$substr

$如果$str以$substr開始,則用$replace來代替匹配到的$substr

$如果$str以$substr結束,則用$replace來代替匹配到的$substr

5.萬用字元擴充套件:(匹配多個排列組合的可能)

比如座標:

#

echo

x1y1 x1y2 x1y3 x2y1 x2y2 x2y3 x3y1 x3y2 x3y3

比如檔名:

#

touch file_

#ls file_

file_1 file_2

6.語句塊

大括號還用於構造語句塊,語句之間使用回車隔開

7.控制字元:(即ctrl+key組合鍵一起使用,用於修改終端或文字顯示,【控制字元不能再指令碼中使用,只能與shell進行互動使用】)

如表:ctrl+b

退格但是不刪除掉前面的字元

ctrl+c

終結當前前台作業

ctrl+d

結束符,可用於退出當前shell或結束當前輸入

ctrl+g

系統輸出一聲鳴叫

ctrl+h

退格且刪掉前面的字元

ctrl+l

清屏,和clear效果一樣

ctrl+i

水平製表符

ctrl+k

垂直製表符

ctrl+j

另起一行

ctrl+m

回車ctrl+z

暫停前台作業

ctrl+v

在vim中操作visual block

ctrl+u

刪除游標到行首的所有字元

8.其他

反引號 `: 命令替換,和$()的作用相同,表示返回當前命令的執行結果並賦值給變數

位置引數:$0:指令碼名本身

$1、$2...$:指令碼的第乙個引數、第二個引數....第十個引數

$#:變數總數.

$*、$@:顯示所有的引數.

$?:前乙個命令的退出的返回值.

$!:最後乙個後台程序的id號.

感嘆號:通常為邏輯反,也可用於執行history中某個命令:例如:!100【為hsitory中行號為100的命令】

Shell指令碼常識 (特殊字元)

shell中的特殊字元有 1 美元符 2 反斜槓 3 反引號 4 雙引號 5 下面我一一舉列說明 一 符號 1 echo 顯示的是上一條指令退出狀態 2 echo 效果同上 3 echo 顯示的是 4 echo 顯示的是 5 echo 顯示的是 大家可能已經看出 符號在雙引號中具有特殊意義 雙引號對...

Shell指令碼特殊字元 轉義字元輸出

一些字母前加 來表示常見的那些不能顯示的ascii字元,如 0,t,n等,就稱為轉義字元,因為後面的字元,都不是它本來的ascii字元意思。輸入 a輸出警告音 b退格,即向左刪除乙個字元 c取消輸出行末的換行符,和 n選項一致 eesc f換頁符 n換行 r回車 t製表,即tab v垂直製表符 0n...

SHELL特殊字元

字元含義 1 通常用於注釋,通常 前後留乙個空格 2 某些模式匹配如sed,數值常量表示式 及引數替換 中也使用 命令分割符,允許單行寫多個的命令,例 echo var1 echo var2 case 的選項結尾符 1 等同與source命令,載入指令碼檔案,可理解為python的import 2 ...