向shell或者sql指令碼傳參或接收引數的方法

2021-05-24 23:37:52 字數 932 閱讀 4788

1.向shell中傳引數的方法,後面是重定向,將日誌匯出到當前目錄下

sh a.sh aaa bbb > a.log

2.shell中接收引數的方法

echo "@a.sql $1"|sqlplus $1/$2

3.通過shell呼叫sql指令碼,並向其中傳引數的方法:

echo "@a.sql $1"|sqlplus $1/$2

4.sql指令碼接收引數的方法

define v_str=&1

begin

p_insert_log('test','&v_str');

end;

/注意:

用sql指令碼最後必須寫「/」,才能執行。如果直接執行語句就不用,執行begin end這樣的程式塊就需要。

下面是**

1、 位置引數

由系統提供的引數稱為位置引數。位置引數的值可以用$n得到,n是乙個數字,如果為1,即$1.類似c語言中的陣列,linux會把輸入的命令字串分段並給每段進行標號,標號從0開始。第0號為程式名字,從1開始就表示傳遞給程式的引數。如$0表示程式的名字,$1表示傳遞給程式的第乙個引數,以此類推。

2、 內部引數

上述過程中的$0是乙個內部變數,它是必須的,而$1則可有可無。和$0一樣的內部變數還有以下幾個。

$# ----傳遞給程式的總的引數數目

$? ----上乙個**或者shell程式在shell中退出的情況,如果正常退出則返回0,反之為非0值。

$* ----傳遞給程式的所有引數組成的字串。

$n ----表示第幾個引數,$1 表示第乙個引數,$2 表示第二個引數 ...

$0 ----當前程式的名稱

$@----以"引數1" "引數2" ... 形式儲存所有引數

$$ ----本程式的(程序id號)pid

$! ----上乙個命令的pid

Shell 向shell指令碼傳參

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

shell指令碼傳參

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

向shell指令碼傳引數

執行 nano test.sh 建立乙個新的shell指令碼。指令碼test.sh的內容如下 bin sh name 1 echo the are great man 給新建立的test.sh的指令碼賦可執行許可權,命令為 chmod 755 test.sh 執行 test.sh xiao wang...