发布网友 发布时间:2022-04-28 21:15
共3个回答
热心网友 时间:2022-04-12 12:50
在bash 中直接执行expect 应该使用 -c 选项,而不是使用重定向。热心网友 时间:2022-04-12 14:08
#!/bin/bash
热心网友 时间:2022-04-12 15:43
不要写成 bash 脚本,直接写 expect 脚本就行了。追答首先,你这种想法就是脱裤子放屁。
其次,如果一定要在bash脚本中调用 expect, 那也不能用 here document,在 here document 最后一行bash会关闭expect的输入,导致 expect 需要读取输入时 (interact 语句),发现输入文件已经结束,就会退出。可以把下面的内容存入文件,比如 a.exp 中
spawn su -
expect ":" {
send "redhat\r"
}
interact
然后在 bash 脚本中
#!/bin/bash
expect a.exp
这样就能在 bash 中调用 expect 并保持 su - 的session不退出。但是,这显然多此一举。