shell 函式傳遞的路徑引數

2021-10-19 06:56:03 字數 418 閱讀 2420

最近寫指令碼,需要對指令碼中函式傳遞的路徑引數進行擷取,發現了以下比較好用的方法,記錄下:

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

Shell函式傳遞引數

透過現象看本質 若文章對你有幫助請點個?表示對我的鼓勵,非常感謝 函式之間呼叫時,如果把 全部引數,可以用shift進行截斷 直接全部傳遞過去可能會造成引數個數變化,這是因為把帶空格的引數 傳入時用雙引號包裹 解析為了多個引數.假如有如下指令碼 function say 2 function mai...

shell指令碼 函式傳遞引數

在乙個指令碼中,多個函式之間可能需要相互傳遞引數,之前一直對引數的傳遞以及引用有些疑問,今天做了幾個小測試例子 1 bin bash function f1 function f2 f1 1執行結果 temp2.sh pp mj ubuntu temp2.sh pp f1pp f2pp2 bin b...

shell引數傳遞

1.位置變數引數即可傳入到指令碼的引數,最多可以訪問 9個,比如 sh a b c d 其中 0 是指令碼名字 1 是第乙個引數 a以此類推 2.特殊參量 傳遞到指令碼的引數個數 以乙個單字串顯示所有向指令碼傳遞的引數。與位置變數不同,可以超過9個 指令碼執行的當前id 後台執行的最後乙個程序的程序...