shell變數的輸出替換擷取等操作

2021-07-25 07:36:17 字數 2411 閱讀 7971

shell中,對變數的輸出是最為常見,根據所遇到的情況,對變數的操作進行下總結。

變數中,有時我們會輸出特殊字元,轉義字元等,此時直接echo輸出則會直接輸出,而不會有所想要的結果,因此需要新增-e 屬性。例項如下:

#!/bin/bash

test=100

echo "your score is $test \n"

echo "*****==="

echo -e "your score is $test \n"

執行結果如下:

如圖所示,直接輸入則會將轉義字元輸出,但是加上-e則可以輸出想要結果。

#!/bin/sh

test=100

echo "your score is $test \n"

echo "*****==="

echo -e "your score is $test \n"

執行結果如下:

更改宣告,會發現,在/bin/sh的模式下,-e的命令則沒有了,他可以自動識別輸出結果的轉義字元。這個的區別有時間會詳細的進行下統計。

下面的轉義字元都可以用在 echo 中:

轉義字元

含義\\

反斜槓\a

警報,響鈴

\b退格(刪除鍵)

\f換頁(ff),將當前位置移到下頁開頭

\n換行

\r回車

\t水平製表符(tab鍵) 

\v垂直製表符

表示式含義

$$string的長度

$在$string中, 從位置$position開始提取子串

$在$string中, 從位置$position開始提取長度為$length的子串

$從變數$string的開頭, 刪除最短匹配$substring的子串

$從變數$string的開頭, 刪除最長匹配$substring的子串

$從變數$string的結尾, 刪除最短匹配$substring的子串

$從變數$string的結尾, 刪除最長匹配$substring的子串

$使用$replacement, 來代替第乙個匹配的$substring

$使用$replacement, 代替所有匹配的$substring

$如果$string的字首匹配$substring, 那麼就用$replacement來代替匹配到的$substring

$如果$string的字尾匹配$substring, 那麼就用$replacement來代替匹配到的$substring

接下來的例項進行講解下這部分的命令:

#!/bin/sh

test="my name is wenxuechao and my first name is wen"

echo "輸出test的長度"

echo $

echo "從位置position處提取字串"

echo $

echo "從位置position開始提取長度為length的子串"

echo $

echo "從變數string的開頭, 刪除最短匹配substring的子串"

echo $

echo "從變數string的開頭, 刪除最長匹配substring的子串"

echo $

echo "從變數string的結尾, 刪除最短匹配substring的子串"

echo $

echo "從變數string的結尾, 刪除最長匹配substring的子串"

echo $

echo "使用replacement, 來代替第乙個匹配的substring"

echo $

echo "使用replacement, 代替所有匹配的substring"

echo $

echo "如果string的字首匹配substring, 那麼就用replacement來代替匹配到的substring"

echo $

echo "如果string的字尾匹配substring, 那麼就用replacement來代替匹配到的substring"

echo $

執行結果如下:

直接根據例項即可看到對應的執行方式。

靈活的運用shell擷取,能夠在伺服器運維當中節省大量時間,包括對print的使用等命令,都能提供很多遍歷,後續繼續補充。

shell 字串擷取與變數內容替換

從頭開始,將匹配到的最短子串刪除 第乙個匹配到的子串刪除 刪除第1個分隔符及其之前的內容 從頭開始,將匹配到的最長子串刪除 刪除最後1個分隔符及其之前的內容 從尾開始,將匹配到的最短子串刪除 從尾開始,將匹配到的最長子串刪除 替換掉第乙個匹配到的舊字串 替換掉所有匹配到的舊字串 待處理表量 aa a...

shell 中變數的擷取

假設我們定義了乙個變數為 file dir1 dir2 dir3 my.file.txt 可以用 分別替換得到不同的值 刪掉第乙個 及其左邊的字串 dir1 dir2 dir3 my.file.txt 刪掉最後乙個 及其左邊的字串 my.file.txt 刪掉第乙個 及其左邊的字串 file.txt...

shell變數的擷取總結

shell變數的擷取 shell中的 和 假設定義了乙個變數為 如下 file dir1 dir2 dir3 my.file.txt 變數的刪除可以用 分別替換得到不同的值 刪掉第乙個 及其左邊的字串 dir1 dir2 dir3 my.file.txt 刪掉最後乙個 及其左邊的字串 my.file...