shell 传参数
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
總結