python 如何调用带参数的shell脚本

作者&投稿:资骅 (若有异议请与网页底部的电邮联系)
参数传递:shell脚本调用一个带参数的python函数~

把a b c写到文件里,如example.txt,然后shell里:cif filename <example.txt

一般情况下都是通过import脚本,然后直接调用脚本里的函数,调用函数就可以直接传递参数;因为Python并不像C语言那样有main函数。
import B(脚本名称)B.hello(参数A,参数B)

调用带参数的脚本,需要首先设置,举例如下:

test.py按行解释如下:

  1. 脚本中有汉字的话,需要声明文件编码格式;

  2. 导入sys模块,这个模块是用来获取参数列表的;

  3. sys.argv是一个列表,第一个是文件名,之后依次是参数列表;

  4. 打印输出,这一步不需要多讲;

  5. 保存到c:\users\YYC\Desktopest.py;

调用操作步骤:

  1. 打开命令行;

  2. 输入python 文件名 第一个参数 第二个参数.....(参数之间用空格区分);

  3. 一定要注意参数个数,要以文件名开始。



举例:shell的脚本:t.sh内容:echo "this is a test shell with arguments"echo "arg1 = $1; arg2 = $2;"执行脚本./t.sh zhao结果如下:[noncode@gnode108 knockdown_workflow]$ ./t.sh zhao1 zhao2this is a test shell with argumentsarg1 = zhao1; arg2 = zhao2;python脚本:[noncode@gnode108 knockdown_workflow]$ cat t.py #!/usr/bin/env pythonimport osimport sysdef main():print 'Hello world!'if len(sys.argv) < 2 : print "usage:%s config log" %(sys.argv[0]) sys.exit(1)arg0 = sys.argv[0]arg1 = sys.argv[1]print "arg0 = %s; arg1 = %s" % (arg0, arg1) print "test ./t.sh: "os.system('./t.sh ' + arg0 + ' ' + arg1)print "test method of replacing: "t = 't.sh'm = 'zhao'n = 'zhao'cmd = "./%s %s %s" % (t,m,n)print "t = %s; m = %s; n = %s; cmd = %s" % (t,m,n,cmd)os.system(cmd)if __name__ == '__main__':main()运行脚本:python t.py t.sh执行结果:[noncode@gnode108 knockdown_workflow]$ python t.py t.shHello world!arg0 = t.py; arg1 = t.shtest ./t.sh: this is a test shell with argumentsarg1 = t.py; arg2 = t.sh;test method of replacing: t = t.sh; m = zhao; n = zhao; cmd = ./t.sh zhao zhaothis is a test shell with argumentsarg1 = zhao; arg2 = zhao;[noncode@gnode108 knockdown_workflow]$ cat t.sh echo "this is a test shell with arguments"echo "arg1 = $1; arg2 = $2;"[noncode@gnode108 knockdown_workflow]$ ./t.sh zhao1 zhao2this is a test shell with argumentsarg1 = zhao1; arg2 = zhao2;说明:两种方法使用python脚本调用shell脚本:第一种方法:os.system('./t.sh ' + arg0 + ' ' + arg1)注:./t.sh后面有一个空格,不同的第二种方法:t = 't.sh'm = 'zhao'n = 'zhao'cmd = "./%s %s %s" % (t,m,n)print "t = %s; m = %s; n = %s; cmd = %s" % (t,m,n,cmd)os.system(cmd)注:在之前把字符串聚合到一起。其中连接字符串还可以使用这个方法: t = 't.sh'm = 'zhao'n = 'zhao' cmd1 = os.path.join("./", t, ' ', m, ' ', n) print "cmd1 = %s" % cmd1os.system('./t.sh ' + arg1) print "replace:" t = 't.sh' m = 'zhao' cmd = "./%s %s" % (t,m) print "t = %s; m = %s; cmd = %s" % (t,m,cmd) os.system(cmd)


五莲县19592414975: python 如何调用带参数的shell脚本 -
亥哗金莲: 调用带参数的脚本,需要首先设置,举例如下:test.py按行解释如下:1. 脚本中有汉字的话,需要声明文件编码格式;2. 导入sys模块,这个模块是用来获取参数列表的;3. sys.argv是一个列表,第一个是文件名,之后依次是参数列表;4. 打印输出,这一步不需要多讲;5. 保存到c:\users\YYC\Desktop\test.py;调用操作步骤:1. 打开命令行;2. 输入python 文件名 第一个参数 第二个参数.....(参数之间用空格区分);3. 一定要注意参数个数,要以文件名开始.

五莲县19592414975: python如何调用.sh -
亥哗金莲: 请google sh.py就会找到你想要的东东!

五莲县19592414975: python 编程,如何用subprocess执行带参数的命令,并且参数储存在data.txt里面 -
亥哗金莲: ``使命令结果作为参数不是程序的处理,是shell的处理,所以如果需要这么使用,应当使用shell处理你的字符串 简单说来,应该这么用:p1=subprocess.Popen('./examplecpp `cat data.txt`', stdout=subprocess.PIPE, shell=True)

五莲县19592414975: python中同一个类,带参的方法直接如何相互调用 -
亥哗金莲: >>> class OP(): ... def __init__(self,p): ... self.p=p ... def re(self): ... self.p+=1 ... def s(self): ... self.re() ... print self.p ... >>> vb=OP(2) >>> vb.s > >>> vb.s() 3 >>>

五莲县19592414975: 如何将命令行里的参数调用到python程序里 -
亥哗金莲: Python一共有三种形式: Shell命令行,一次只能执行一条语句: Dos命令行: Python IDE形式: 建议使用最后一种,方便,功能强大.

五莲县19592414975: Python如何调用yaml文件中的参数来执行ssh命令 -
亥哗金莲: 安装一个pyyaml库.它会解析这个文件,变成一个类似json加载后的结构.字典,列表什么的.然后自己找参数.ssh命令同样要使用一个库.简单的办法是通过一个封装popen这样功能 的pexpect , 我以前用过paramiko. 另外似乎还有一个SSH库,最近流行的.不记得名子了. 也有人用ssh4py 这个库.yaml这个格式比较人性化,易读,易管理.比json还要简单.比xml少了编码和解析成DOM的麻烦.

五莲县19592414975: python脚本中调用执行另一个带参数python脚本的问题 -
亥哗金莲: cmd = '/home/menglin/androguard/androaxml.py -i {} | grep "android.permission."'.format(path) p1 = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)

五莲县19592414975: 如何运行 带参数sys argv的python程序 -
亥哗金莲: 按照Python教程中的做法 编写using_sys.py在cmd中执行脚本 先是只执行python using_sys.py看一下结果然后,添加一些参数 python using_sys.py helloworld再查看一下结果:接下来分析一下:首先import sys是导入模块,这就是...

五莲县19592414975: shell脚本中怎么调用python脚本中的带参函数 -
亥哗金莲: 比如你在a.py的文件中定义了一个test(x,y)函数,在shell中调用的时候 from a import test test(x,y)

五莲县19592414975: python中怎么在自定义函数调用另外一个函数中的参数 -
亥哗金莲: 有几种方法:1. 在写函数的时候传参进去,然后返回该参数.2. 在写函数里面将变量命名为global就可以全局调用了.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网