如何向expect脚本里面传递参数

2021-01-11 19:10:20 字数 4039 阅读 4581

1楼:育知同创教育

比如下面脚本用来做ssh无密码登陆,自动输入确认yes和密码信息,用户名,密码,hostname通过参数来传递

ssh.exp

python**

#!/usr/bin/expect

set timeout 10

set username [lindex $argv 0]

set password [lindex $argv 1]

set hostname [lindex $argv 2]

spawn ssh-copy-id -i .ssh/id_rsa.pub $username@$hostname

expect "yes/no"

send "yes\r"

expect "password:"

send "$password\r"

expect eof

执行脚本./ssh.exp root pasword hostname1

expect接收参数的方式和bash脚本的方式不太一样,bash是通过$0 ... $n 这种方式,而expect是通过set 《变量名称》 [lindex $argv ],例如set username [lindex $argv 0]

如何向expect脚本里面传递参数

2楼:兄弟连教育北京总校

比如下面脚本用来做ssh无密码登陆,自动输入确认yes和密码信息,用户名,密码,hostname通过参数来传递

ssh.exp

python**

#!/usr/bin/expect

set timeout 10

set username [lindex $argv 0]

set password [lindex $argv 1]

set hostname [lindex $argv 2]

spawn ssh-copy-id -i .ssh/id_rsa.pub $username@$hostname

expect "yes/no"

send "yes\r"

expect "password:"

send "$password\r"

expect eof

执行脚本./ssh.exp root pasword hostname1

expect接收参数的方式和bash脚本的方式不太一样,bash是通过$0 ... $n 这种方式,而expect是通过set 《变量名称》 [lindex $argv ],例如set username [lindex $argv 0]

怎样用perl脚本调用python脚本并传递参数

3楼:du知道君

举例: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)注:

在之前把字符串聚合到一起。

shell脚本里怎样在调用python时传参数

4楼:育知同创教育

python 可以利用 sys.argv 拿到命令列上的 arguments:

$ python test.py 1 2 3

test.py:

import sys

print(sys.argv)

结果:['test.py', '1', '2', '3']

所以你在 build_using_xctool.sh 中可以这样调度 python:

python /users/gyd/desktop/auto_send_email.py subject msg toaddrs fromaddr **tpaddr password

然後在 auto_send_email.py 中:

import sys # 自己 import sys...if __name__ == '__main__':

sendmail(*sys.argv[1:])

5楼:局诗奇友安

||是重定向嘛,

echo

'asdfadsf'

先是将'asdfadsf'输出到标准输出也就是屏幕然后|将echo的输出转到

logcat.py

作为logcat.py

的输入,也就等于是将

'asdfadsf'

作为logcat.py的输入参数

javascript 函数参数传递到底是值传递还是引用传递

6楼:育知同创教育

狭义上说基本类型是值传递,引用类型是引用传递

广义上说都是传值,只不过基本类型传的是它的值,引用类型传的是它的指针

如何利用intent传值,如何利用Intent传递参数?

1楼 匿名用户 intent intent new intent intent putextra extra 值! 取值 intent intent getintent string stringe intent getstringextra extra 如何利用intent传递参数? 2楼 南霸天...

osql调用sql文件时如何传递参数

1楼 表哥傻叼 set p a3 请输入 远程数据库地址 set p a4 请输入远程数据库用户名set p a5 请输入远程数据库密码 for i in batpath sql do osql s a3 u a4 p a5 i batpath i pause exit 如何在调用webservic...

如何判别可变参数函数的参数类型,怎么将可变参数的函数的参数传递给另一个可变参数的函数

1楼 用narginnargin number of function arguments,即函数输入参数个数。只要你的函数重载逻辑没有出错,那么就可以通过查看nargin的数值来实现你说的设置缺省值等功能。 看下nargin的帮助就知道了。 2楼 新生儿 等闲识得东风面 万紫千红总是春 怎么将可变...