A. 如何給shell腳本傳參數
from:Linux命令行與shell腳本編程大全.第3版
向shell腳本傳遞數據的最基本方法是使用命令行參數。命令行參數允許在運行腳本時向命令行添加數據。
$ ./addem 10 30
本例向腳本addem傳遞了兩個命令行參數( 10和30)。腳本會通過特殊的變數來處理命令行參數。下面是在shell腳本中使用單個命令行參數的簡單例子。
$cattest1.sh
#!/bin/bash
#usingonecommandlineparameter
#
factorial=1
for((number=1;number<=$1;number++))
do
factorial=$[$factorial*$number]
done
echoThefactorialof$1is$factorial
$
$./test1.sh5
Thefactorialof5is120
$
B. linux shell腳本調用參數傳遞
如果應用場景不允許交互或文件傳輸的話,可以考慮變通的方法:
目的是為了避免用戶口令暴露,命令行可以考慮傳遞加密後的密文就好了,由test_b.sh調用時完成密文解析就可以了.
如果test_b.sh是為是完成用戶口令重置的話,完全可以直接用標准密文進行口令重置的.
C. 調用shell腳本 怎麼像調用java方法那樣傳入參數
folder="$1"
ver_file="$2"
fodler和ver_file分別是調用 test.sh時的第一個和第二個參數,如下調用
test.sh"/home/jack/files/portal/uservisit""/home/jack/files/portal/uservisit/a_10000_20150415_VGOP1-R2.10-78204_00.vref"
D. linux 調用腳本怎麼傳腳本參數
Linux shell腳本開始執行時,系統會初始化一些腳本的環境變數和參數變數,這些變數是可以直接使用的,下面是一些參數變數:
$1,$2,$3......:代表腳本程序的參數,腳本有幾個參數數字就到幾;
那$0代表什麼呢?當然是腳本的名字了
還有和腳本參數有關的一個腳本環境變數:$#
它代表傳遞給腳本的參數個數。
知道了這些,你就可以在你編寫的腳本內編寫處理腳本參數的代碼,一旦你的腳本有了對參數的處理,你就可以這樣調用有參數的腳本:
./腳本名 參數1 參數2......
參數和腳本名、參數和參數之間用空格分開,和使用shell命令的格式是一樣的。
E. lua 腳本怎麼傳遞參數
只能調用了,多加一個參數,
for i=1,5 do
nRet_rw = math.random(6)
x002103_OnEventRequest( sceneId, selfId, targetId, eventId,nRet_rw )
end
或者把nRet_rw作為全局變數。
F. vba調用python程序,如何傳參數
已有一個Python腳本實現了部分功能,想使用VBA直接調用Python腳本
Python腳本如下:
[python] view plain
import time
def hello(name):
return "Hello, " + name + "!"
print hello("World")
#延時關閉windows控制台,使得用戶可以看到運行結果
time.sleep(150);
方法如下:
[python] view plain
<pre name="code" class="vb">Sub test()
Call Shell("C:\Python27\Python.exe C:\Users\Hongxing\Desktop\py2exe\Hello.py", vbNormalFocus)
End Sub
G. shell腳本怎麼傳給其他腳本參數
很明顯,把 read刪掉啊,用常規變數代替,別讓從stdin讀取了,很簡單哦,試試,這樣就可以自動初始化mysql啦。編譯下mysql_secure_installation文件吧。
比如
read passwd
改成
passwd="123123"
就可以了。
因為read的用法也是從鍵盤輸入讀取然後存放到passwd中。
H. sqlplus執行腳本文件時如何傳參數
oracle 裡面有三種參數,分別是in、in out、out
模式為in的形參對應的實際參數可以是常量或變數
模式為in out或out的形參對應的實際參數必須是變數,用於存儲返回的值,
所以不能是常量或表達式
帶參數的過程調用
位置表示法
調用時添入所有參數,實參與形參按順序一一對應
名字表示法
調用時給出形參名字,並給出參數
procname(12,p_outParm=>v_var1,p_inout=>10);
例如,腳本內容為如下函數
create or replace function fun_test(p_id account.id%type,p_age out number)
--創建一個函數,帶兩個參數,一個默認為in,一個為out
return varchar2 --返回值類型為varchar2
is
v_name varchar2(20);--定義一個變數
begin
select nvl(name,'null'),to_number(round((sysdate-birthdate)/365),'999')
into v_name,p_age from account
where id=p_id;
--查詢一個賬戶的姓名,和年齡,得到的結果放到 v_name,p_age
exception --自定義的異常處理
when no_data_found then --如果通過傳入的p_id找不到對應的賬號,進行如下處理
v_name:='null';
p_age:=0;
return v_name;
end;
如下執行,輸出該函數的返回值
exec dbms_output.put_line(fun_test(1006,:a_out));
I. 如何給shell腳本傳參數
執行「nano test.sh」創建一個新的shell腳本。
>02
腳本test.sh的內容如下:
#!/bin/sh
name=$1
echo "the ${name} are great man!"
>03
給新創建的test.sh的腳本賦可執行許可權,命令為「chmod 755 test.sh」。
>04
執行'./test.sh "xiao wang"'命令,可以看到自己編寫腳本的結果「the xiao wang are great man!」。
>05
"name=$1"中$1為系統提供的位置參數,$0代表程序的名稱,[$1/$2/...]從1開始為傳遞的參數。
>06
linux系統除了提供位置參數還提供內置參數,內置參數如下:
$# ----傳遞給程序的總的參數數目
$? ----上一個代碼或者shell程序在shell中退出的情況,如果正常退出則返回0,反之為非0值。
$* ----傳遞給程序的所有參數組成的字元串。
$n ----表示第幾個參數,$1 表示第一個參數,$2 表示第二個參數 ... $0 ----當前程序的名稱
$@----以"參數1" "參數2" ... 形式保存所有參數
$$ ----本程序的(進程ID號)PID
$! ----上一個命令的PID
J. sqlplus 執行腳本文件時如何傳參數
d:\test.sql腳本如下:
[sql] view plain
select &1 from &2;
exit;
執行時這樣傳參數:sqlplus "scott/tiger@test" @d:\test.sql sysdate al
注意:參數必須用&[1-9]表示,不然傳不進去,會提示讓手動輸入參數
[sql] view plain
C:\>sqlplus "scott/tiger@test" @d:\test.sql sysdate al
D:\>sqlplus "scott/tiger@test" @d:\test.sql sysdate al
SQL*Plus: Release 11.2.0.1.0 Proction on 星期二 11月 1 21:59:00 2011
Copyright (c) 1982, 2010, Oracle. All rights reserved.
連接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Proction
With the Partitioning, OLAP, Data Mining and Real Application Testing options
原值 1: select &1 from &2
新值 1: select sysdate from al
SYSDATE
--------------
01-11月-11
從 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Proction
With the Partitioning, OLAP, Data Mining and Real Application Testing options 斷
開
D:\>
如果腳本中有重復用到相同的值,如果&1=&2:
d:\tes2.sql
[sql] view plain
delete scott.emp where no=&1 or deptno=&2;
commit;
執行時,就必須傳2個參數:
[sql] view plain
sqlplus "scott/tiger@test" @d:\test2.sql 10 10
小竅門: 這時用procere就可以不用傳多個相同的參數,則只用傳1個參數:
d:\test3.sql
[sql] view plain
declare
var_no number:=&1;
begin
delete scott.emp where no=var_no or deptno=var_no;
commit;
end;
sqlplus "scott/tiger@test" @d:\test3.sql 10