posts - 225, comments - 62, trackbacks - 0, articles - 0
   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

在Shell脚本输入密码

Posted on 2022-02-21 18:44 魔のkyo 阅读(1282) 评论(0)  编辑 收藏 引用 所属分类: Linux
首先在Shell脚本中使用sudo不是一个好主意。
可以考虑的替代方案有,
1. 在脚本中去掉sudo,而要求在运行脚本时使用sudo。
2. 如果是任务计划,考虑配置在root用户下。
如果确实确定要在Shell中sudo,可以使用如下方式
echo '密码' | sudo -S 命令

如果是通过SSH建立远程连接,考虑用SSH密钥登录。搜索SSH秘钥,ssh-keygen,ssh-copy-id
如果是其他程序需要输入密码,可以用expect工具
expect在shell脚本中的用法
#!/bin/bash

passwd='123456'

/usr/bin/expect <<-EOF

set time 10
spawn ssh saneri@192.168.56.103 df -Th
expect {
"*yes/no" { send "yes\r"; exp_continue }
"*password:" { send "$passwd\r" }
}
expect eof
EOF
只有注册用户登录后才能发表评论。