假設我們定義了乙個變數為:
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 代表上乙個命令執行後的退出狀態...