分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!
shell變數裡的字元替換
b=$;將$裡的第乙個123替換為321
b=$;將$裡的所有123替換為321
shell除錯:
shell十三問
不過,假如你只看到 $ 只能用來界定變數名稱的話,那你就實在太小看 bash 了﹗
有興趣的話,你可先參考一下 cu 本版的精華文章:
為了完整起見,我這裡再用一些例子加以說明 $ 的一些特異功能:
假設我們定義了乙個變數為:
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。 (非空值時不作處理)
tips:
以上的理解在於, 你一定要分清楚 unset 與 null 及 non-null 這三種賦值狀態.
一般而言, : 與 null 有關, 若不帶 : 的話, null 不受影響, 若帶 : 則連 null 也受影響.
還有哦,$ 可計算出變數值的長度:
$ 可得到 27 ,因為 /dir1/dir2/dir3/my.file.txt 剛好是 27 個位元組...
給我老師的人工智慧教程打call!
shell變數裡的字元替換
shell變數裡的字元替換 b 將 裡的第乙個123替換為321 b 將 裡的所有123替換為321 shell除錯 shell十三問 不過,假如你只看到 只能用來界定變數名稱的話,那你就實在太小看 bash 了 有興趣的話,你可先參考一下 cu 本版的精華文章 為了完整起見,我這裡再用一些例子加以...
shell變數的替換,命令的替換,轉義字元
1,shell變數的替換 變數可以根據變數是否為空或者被刪除,而被替換為特定的值 變數本來的值 var word 如果變數為空,或者已被刪除那麼返回word,但是不改變var的值 name xiaoming echo xiaoming s age is ech age xiaoming s age ...
四 shell替換 變數 命令 轉義字元的替換
1 變數替換 根據變數的狀態 是否定義,賦值,為空 來進行替換 形式 說明 變數本來的值 如果var變數為空或者已經被unset之後,返回hello,但是不改變var的值 如果var變數為空或者已經被unset之後,返回hello,並將var的值設定為hello 如果var變數為空或者已經被unse...