shell中 的一些特異功能

2021-06-15 05:26:25 字數 1715 閱讀 2594

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

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 定義為非空值。(保留空值及非空值) 

$ :若$file 沒設定或為空值,則使用my.file.txt 作預設值,同時將$file 定義為非空值。(保留非空值) 

$ :若$file 沒設定,則將my.file.txt 輸出至stderr。(保留空值及非空值)) 

$ :若$file 沒設定或為空值,則將my.file.txt 輸出至stderr。(保留非空值) 

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

$ 可得到27 ,因為/dir1/dir2/dir3/my.file.txt 剛好是27 個位元組...

接下來,再為大家介稍一下 bash 的組數(array)處理方法。

一般而言,a="a b c def" 這樣的變數只是將 $a 替換為乙個單一的字串,

但是改為 a=(a b c def) ,則是將 $a 定義為組數…

bash 的組數替換方法可參考如下方法:

$ 或 $ 可得到 a b c def (全部組數)

$ 可得到 a (第乙個組數),$ 則為第二個組數…

$ 或 $ 可得到 4 (全部組數數量)

$ 可得到 1 (即第乙個組數(a)的長度),$ 可得到 3 (第四個組數(def)的長度)

a[3]=xyz 則是將第四個組數重新定義為 xyz …

人工電磁特異材料的一些研究

背景 材料的電磁特性就兩個引數,磁導率和介電常數。大多情況下,這兩個值都應該是正的。不過自然界也有極少數的材料,這兩個引數在某一些頻率下是負的或者等於零。這類特意材料能夠產生很多特異的效果,比如隱身,光計算等等。這方面的研究主要分為兩個方向 不同的特異材料組合在一起,能夠產生什麼樣的效果。研究的難點...

shell中的一些命令

shutdown h now 關機 vim 開啟某個檔案 後台執行指令碼 進入指令碼的目錄下 nohup python manage.py 指令碼名 ps ef grep python 看後台有哪些本專案的任務在執行 mysql h主機名 u使用者名稱 p密碼 use databasename 使用...

Shell中的一些特殊變數

shell中的一些特殊變數 shell中的一些特殊變數 shell中的特殊變數 0 shell或shell指令碼的名字 以一對雙引號給出引數列表 將各個引數分別加雙引號返回 引數的個數 代表上乙個命令的最後乙個引數 代表所在命令的pid 代表最後執行的後台命令的pid 代表上乙個命令執行後的退出狀態...