Posted on 2022-02-21 18:44
魔のkyo 阅读(1340)
评论(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