怎么给shell命令传递可变参数

怎么给shell命令传递可变参数,第1张

#!/bin/sh

myFunc()

{

echo "$1"

}

var="$1"

myFunc "$var"

---------------

脚本名为testsh,执行脚本 /testsh test

最后就会在屏幕上打印出字符串 test

说明:脚本主体中用$1取脚本的第一个参数,函数中用$1取函数的第一个参数。第二个参数用$2。依此类推,直到$9。

ShellExecute(HWND hwnd, LPCWSTR lpOperation, LPCWSTR lpFile, LPCWSTR lpParameters, LPCWSTR lpDirectory, INT nShowCmd);

lpParameters的地方就是传递的参数。

接收的应用程序如果是C++开发的话,有一个

int WinMain(HINSTANCE hInstance,

HINSTANCE hPrevInstance,

LPTSTR lpCmdLine,

int nCmdShow)

其中lpCmdLine就是参数。

bat文件貌似不支持直接传参数的

可以这样用:

将bat中的参数用  $参数 代替

然后VB先读入该bat文件,然后文本替换参数字符串,然后将全部内容写回bat

再调用即可。

或是试下这个

Private Sub Command1_Click()

Dim bat

Set ws = CreateObject("wscriptshell")

//参数之间需要带空格

bat = "C:\Users\fengshixu\Desktop\batbat " + Text1Text + " " + Text2Text

wsrun bat, 1, True

End Sub

#下面的代码是对于从oracle的sqlplus返回变量值给shell的例子

output=`sqlplus -s unitele/lemontea << EOF

set heading off feedback off verify off

drop function test_get_param_value_p;

CREATE OR REPLACE function test_get_param_value_p

(

is_citycode in varchar2

)

return varchar2

is

on_value varchar2(100);

begin

on_value :='100000';

dbms_outputput_line(on_value);

dbms_outputput_line(is_citycode);

return on_value;

end;

/

select test_get_param_value_p('501') from dual;

exit

EOF

`

echo "Oracle的输出变量值:"$output

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=

存储过程 myproc(in_num in number,out_num out number)

sql脚本模板

先编辑一个mysqlsql文件,内容如下:

------------

var nret number;

execute :nret := 0;--初始化

call myproc(in_code,:nret)--执行存储过程,in_code会被替换掉

/

select 'retcode[' || :nret || ']retcode' from dual--显示结果

/

quit;

-------------

SHELL脚本myshsh,内容如下

-------------

#/myshsh 123

cd /home/myshell

sed "s/in_code/$1/" mysqlsql > mysql01sql

#根据sql脚本模板生成实际脚本

sqlplus usr/pwd@db result$1txt

#执行sql脚本并把结果输入result$1txt

echo ok!

-------------

在LINUX下执行/myshsh 123,生成result123txt,myproc输出参数在'retcode['和']retcode'之间。

#include<stdioh>

 

int main(int argc, char argv)

{

    int i;

    for(i=0; i<argc; i++)

        printf("%s\n", argv[i]);

 

    return 0;

}

比方这个程序叫 mainc 吧,先编译成 mainexe

gcc mainc -o mainexe

然后用命令运行

mainexe aefae 2423 asdae

程序输出:

mainexe

aefae

2423

asdae

argv 是通过命令行传送给程序的参数的字符串指针数组,argc 是参数的个数

以上就是关于怎么给shell命令传递可变参数全部的内容,包括:怎么给shell命令传递可变参数、急问:用ShellExecute向程序传递一个参数值,在这个调用程序中如何获取这个参数值、利用shell启动bat文件如何传入参数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9485825.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存