我正在尝试使用expect在脚本中输入值,其中一些值是密码。
期望不输入密码,它笨拙地结束其子脚本然后自己。
我把它简化为简单 - 尝试更改用户
su - some_random_user
./suscript
其中的标题是:
#!/bin/bash
expect <<- DONE
spawn su - root
expect -ex {assword:}
send -- "my_password\n"
DONE
这似乎有什么问题吗?我认为没有理由不这样做。
编辑 - 我想我发现了问题,现在我只需要解决方案。 我正在运行的脚本(以及上面的脚本)都调用passwd,这个进程不是由expect产生的,因此不会被期望监听。 我确切知道什么时候会生成passwd,所以我可以坐在等待循环中,直到我在进程列表中看到它。
问题是 - 一旦我得到一个PID /进程名称,我该如何让它听起来好像它催生了这个进程?