shell程式的傳參

2021-09-05 08:20:30 字數 739 閱讀 6548

呼叫shell程式時的傳參

我們都知道在c語言中系統可以通過main函式的argc和argv給它傳參。同樣shell程式本身也可以在呼叫時傳參給他。在shell程式內部使用傳參也是使用的一些特定符號來表示的,包括:

katex parse error: expected 'eof', got '#' at position 1: #̲表示呼叫該shell時傳參的個…#計數時只考慮真正的引數個數)

$0、$1、$2·····則依次表示傳參的各個引數。

對於c語言來說,若在linux的命令列輸入 ./a.out aa bb cc

那麼相應的argc = 4, argv[0] = ./a.out, argv[1]是第乙個有效引數aa,以此輪推…

對於shell來說,若在linux的命令列輸入 source a.sh aa bb cc

那麼相應的$# = 3, $0是執行這個shell程式的解析程式的名字,$1是第乙個有效引數的值aa,$2是第2個有效引數的值bb·····

注意:

shell中的$# $1等內建變數(shell已經預置好的)的值不是不可變的,而是可以被shift指令改變(而c語言中的argv的值是幾就是幾,不能通過在程式中賦值去改變)。shift指令有點像左移運算子,把我們給shell程式的傳參左移了乙個移出去了,原來的$2變成了新的1,原

來的

1,原來的

1,原來

的#少了1個。

shell指令碼傳參

喜歡用第二種方法 shell傳函式方法 法一 使用全域性變數 html view plain copy g result function testfunc testfunc echo g result 方法二 把shell函式作為子程式呼叫,將其結果寫到子程式的標準輸出 html view pla...

shell如何傳參

n。n 代表乙個數字,1 為執行指令碼的第乙個引數,2 為執行指令碼的第二個引數,以此類推 比如,新建乙個a.sh檔案 bin bash echo shell 傳遞引數例項!echo 執行的檔名 0 echo 第乙個引數為 1 echo 第二個引數為 2 echo 第三個引數為 3 授權 chmod...

Shell 向shell指令碼傳參

我們可以在執行 shell 指令碼時,向指令碼傳遞引數,指令碼內獲取引數的格式為 n。n 代表乙個數字,1 為執行指令碼的第乙個引數,2 為執行指令碼的第二個引數,以此類推 傳遞到指令碼的引數個數 以下例項我們向指令碼傳遞三個引數,並分別輸出,其中 0 為執行的檔名 test.sh echo she...