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