You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Expect脚本从password.txt读取密码实现自动授权?

让Expect脚本从password.txt读取密码完成自动授权

修改Expect脚本读取密码

原脚本里的answer是错误命令,需要改成send,同时从password.txt读取密码内容替换硬编码值。修改后的完整Expect脚本如下:

#!/bin/expect
# 读取password.txt中的第一行作为密码
set password [exec cat password.txt]

spawn ./script.sh
expect "password:"
# 发送密码并加上回车符完成输入
send "$password\r"
expect "$"

可选:合并Bash与Expect脚本

如果不想分开维护两个脚本,可以把逻辑合并成一个Bash脚本,直接调用expect完成操作:

#!/bin/bash
# 从password.txt读取密码
password=$(cat password.txt)

# 用Here Document执行Expect逻辑
expect << EOF
spawn rsync -avz username@ip:/fileineed /home
expect "password:"
send "$password\r"
expect eof
EOF

关键注意事项

  • 确保password.txt中只有一行纯密码内容,不要包含多余的换行、空格或注释,否则会导致密码输入错误
  • 务必设置文件权限保护密码:chmod 600 password.txt,防止其他用户读取到敏感内容
  • 如果password.txt所在路径不是脚本执行目录,需要写绝对路径(比如/home/user/password.txt)

内容的提问来源于stack exchange,提问作者user19615058

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 21:15:34