linux shell 字串操作

2021-07-11 20:06:56 字數 1723 閱讀 5409

字串簡介

1、大括號用法例項

1)純用法

拓展功能:例如:ls .sh ;touch .sh

**組織功能:例如:多條命令在當前shell中執行 ,注意cmd1與用法

取值拓展功能:例如:var=dreamer;echo $way 此條語句輸出dreamerway

替換結構:$,$,$,$

a,$和$:若變數var為空,則用在命令列中用string來替換$,否則變數var不為空時,則用變數var的值來替換$;對於$的替換規則和$是一樣的,所不同之處是$若var為空時,用string替換$的同時,把string賦給變數var: $很常用的一種用法是,判斷某個變數是否賦值,沒有的話則給它賦上乙個預設值。

b. $的替換規則和上面的相反,即只有當var不是空的時候才替換成string,若var為空時則不替換或者說是替換成變數 var的值,即空值。(因為變數var此時為空,所以這兩種說法是等價的)

c,$替換規則為:若變數var不為空,則用變數var的值來替換$;若變數var為空,則把string輸出到標準錯誤中,並從指令碼中退出。我們可利用此特性來檢查是否設定了變數的值。

模式匹配替換結構:$,$,$,$

第一種模式:$,這種模式時,shell在variable中查詢,看它是否一給的模式pattern結尾,如果是,就從命令列把variable中的內容去掉右邊最短的匹配模式;

第二種模式: $,這種模式時,shell在variable中查詢,看它是否一給的模式pattern結尾,如果是,就從命令列把variable中的內容去掉右邊最長的匹配模式;

第三種模式:$ 這種模式時,shell在variable中查詢,看它是否一給的模式pattern開始,如果是,就從命令列把variable中的內容去掉左邊最短的匹配模式;

第四種模式: $ 這種模式時,shell在variable中查詢,看它是否一給的模式pattern結尾,如果是,就從命令列把variable中的內容去掉右邊最長的匹配模式;

這四種模式中都不會改變variable的值,其中,只有在pattern中使用了*匹配符號時,%和%%,#和##才有區別。結構中的pattern支援萬用字元,*表示零個或多個任意字元,?表示零個或乙個任意字元,[...]表示匹配中括號裡面的字元,[!...]表示不匹配中括號裡面的字元。

2、中括號[ ]用法例項

單中括號用於條件測試:"["是乙個可執行程式,路徑是"/usr/bin/[",

if [ $num1 -eq $num2 ] ; then 等價於 if /usr/bin/[ $num1 -eq $num2 ] ; then

還等價於if test $num1 -eq $num2 ; then

單中括號用於陣列:例如:輸出陣列全部元素echo $

雙中括號:單中括號加強版 [[是 bash 程式語言的關鍵字,並不是乙個命令,在單括號中是不可以用 || &&等關係運算符號的,只能用-a -o等等,例如[[ $arch_com = i386 || $arch = i*86 ]]

3、小括號( )用法例項

單括號**組織功能:跟上邊{}不同的是,此處命令塊會在子shell中執行,例如:(cmd1;cmd2;cmd3) 這三條命令的執行不會影響當前的shell環境

單括號陣列初始化功能:例如:array=(123

45)雙括號算術運算比較功能:例如:for((i=0;i<9;i++)) 如果不採用雙括號可用

for i in `seq 0

9`或者for i in 代替

linux shell字串操作

value1 hello value2 world echo value2執行結果 helloworlda abc echo 執行結果 3a abc echo 執行結果 bcif語句的兩種格式和對字串判斷的效果不同。支援字串模式匹配,而不支援。下面是幾個比較字串是否相等的例子 a abc if a ...

linux shell 字串替換

x abcdabcd echo 只替換乙個 bbcdabcd echo 替換所有 bbcdbbcd 舉例 test liu.echo liu 引用 參考 在做shell批處理程式時候,經常會涉及到字串相關操作。有很多命令語句,如 awk,sed都可以做字串各種操作。其實shell內建一系列操作符號,...

Linux shell字串擷取

linux shell字串擷取很有用,有八種方法 假設有變數 var 1.號擷取,刪除左邊字元,保留右邊字元。echo 其中 var 是變數名,號是運算子,表示從左邊開始刪除第乙個 號及左邊的所有字元 即刪除 http 結果是 www.aaa.com 123.htm 2.號擷取,刪除左邊字元,保留右...