linux變數處理

2021-06-28 02:39:36 字數 1869 閱讀 1247

假設我們定義了乙個變數為:

file=/dir1/dir2/dir3/my.file.txt

可以用$分別替換得到不同的值:

$:刪掉第乙個

/ 及其左邊的字串:

dir1/dir2/dir3/my.file.txt

$:刪掉最後乙個

/ 及其左邊的字串:

my.file.txt

$:刪掉第乙個

. 及其左邊的字串:

file.txt

$:刪掉最後乙個

. 及其左邊的字串:

txt$

:刪掉最後乙個

/ 及其右邊的字串:

/dir1/dir2/dir3

$:刪掉第乙個

/ 及其右邊的字串:(空值

)$:刪掉最後乙個

. 及其右邊的字串:

/dir1/dir2/dir3/my.file

$:刪掉第乙個

. 及其右邊的字串:

/dir1/dir2/dir3/my

記憶的方法為:

# 是 去掉左邊(鍵盤上#在 $ 的左邊)

%是去掉右邊(鍵盤上% 在$ 的右邊)

單一符號是最小匹配;兩個符號是最大匹配

$:提取最左邊的

5 個位元組:

/dir1

$:提取第

5 個位元組右邊的連續

5個位元組:

/dir2

也可以對變數值裡的字串作替換:

$:將第乙個

dir

替換為path

:/path1/dir2/dir3/my.file.txt

$:將全部

dir

替換為path

:/path1/path2/path3/my.file.txt

利用$

還可針對不同的變數狀態賦值

(沒設定、空值、非空值):

$ :假如

$file

沒有設定,則使用

my.file.txt

作傳回值。

(空值及非空值時不作處理

) $

:假如$file

沒有設定或為空值,則使用

my.file.txt

作傳回值。

(非空值時不作處理)$

:假如$file

設為空值或非空值,均使用

my.file.txt

作傳回值。

(沒設定時不作處理)$

:若$file

為非空值,則使用

my.file.txt

作傳回值。

(沒設定及空值時不作處理)$

:若$file

沒設定,則使用

my.file.txt

作傳回值,同時將

$file

賦值為my.file.txt 。(

空值及非空值時不作處理)$

:若$file

沒設定或為空值,則使用

my.file.txt

作傳回值,同時將

$file

賦值為my.file.txt 。(

非空值時不作處理)$

:若$file

沒設定,則將

my.file.txt

輸出至stderr。(

空值及非空值時不作處理)$

:若$file

沒設定或為空值,則將

my.file.txt

輸出至stderr。(

非空值時不作處理)

$ 可計算出變數值的長度:

$ 可得到

27 ,因為

/dir1/dir2/dir3/my.file.txt 是27

個位元組

Linux awk處理變數

我們在使用awk的大部分場景,是對檔案的處理,但有時也會用它對變數進行處理。awk有兩種方式可以實現對變數的處理 1 oracle master test cat test.sh bin bash a abc,123 a1 echo a awk f a2 echo a awk f echo 拆分後第...

批處理中處理變數延遲

rem 比較兩種異同 體會變數延遲 echo off set a 4 set a 5 echo a pause setlocal enabledelayedexpansion set c 4 set c 5 echo c pause批處理執行機制 批處理讀取命令按行讀取,在處理之前要完成必要的預處理...

variant t 變數的處理

主要用於ado的返回值,為空時的正理 template struct boolpair boolpair t value,bool bvisible m value value m bvisible bvisible operator bool operator t bool m bvisible ...