Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何编写自动交互式shell脚本?_Shell_Expect - Fatal编程技术网

如何编写自动交互式shell脚本?

如何编写自动交互式shell脚本?,shell,expect,Shell,Expect,我只想写一个shell脚本,在运行命令时自动输入用户名和密码提示, 我试过这个,但没用。请帮我找出路 #!/bin/bash #!/usr/bin/expect ls -ltr spawn sudo git pull expect "[sudo] password for sandeep:" send "sandeep123\n" expect "Username :" send "sandeep\n" expect "Password :" send "sandeep121\n

我只想写一个shell脚本,在运行命令时自动输入用户名和密码提示, 我试过这个,但没用。请帮我找出路

#!/bin/bash
#!/usr/bin/expect

ls -ltr

spawn sudo git pull

expect "[sudo] password for sandeep:"

send "sandeep123\n"

expect "Username :"

send "sandeep\n"

expect "Password :"

send "sandeep121\n"
我得到以下输出:

sandeep@K2-Sandeep-08:~$ ./checkout.sh 
total 64
./checkout.sh: line 8: spawn: command not found
couldn't read file "Username:": no such file or directory
./checkout.sh: line 16: send: command not found
couldn't read file "Password:": no such file or directory
./checkout.sh: line 20: send: command not found

expect的语法是

expect -c 'spawn sudo git pull; expect assword; send "password\n"; interact'

其中
spawn sudo git pull
是您的命令,
expect assword等待出现
assword
,当它发出
expect
密码时,expect的语法为

expect -c 'spawn sudo git pull; expect assword; send "password\n"; interact'
其中
spawn sudo git pull
是您的命令,
expect assword
等待
assword
出现,当它出现时
expect
发送
password
您有两个#!行,但您的脚本一次只能由其中一个程序运行。由于大多数命令都是Expect命令,请删除
#/bin/bash
行,以便脚本按Expect运行。但是,行
ls-ltr
不是Expect命令,将导致错误,但是您可以通过将其转换为
put[exec ls-ltr]
来解决此问题。有关详细信息,请参见您有两个!行,但您的脚本一次只能由其中一个程序运行。由于大多数命令都是Expect命令,请删除
#/bin/bash
行,以便脚本按Expect运行。但是,行
ls-ltr
不是Expect命令,将导致错误,但是您可以通过将其转换为
put[exec ls-ltr]
来解决此问题。有关更多详细信息,请参阅