您现在的位置是:网站首页> 编程资料编程资料
Shell 脚本自动输入密码的三种方式小结_linux shell_
2023-05-26
450人已围观
简介 Shell 脚本自动输入密码的三种方式小结_linux shell_
注意,如果创建.sh文件后不可以执行,请执行sudo chmod 755 文件名.sh来修改权限。
方式一
使用 echo “密码” | (管道符)
使用场景: sudo 命令
在使用普通用户执行 root 命令时有时候会需要输入密码,并且在输入密码后一段时间不需要再次输入(但是不影响),这时候可以使用
echo "密码" | sudo 命令
比如我需要一键清空服务器,则可以创建一个clear.sh文件(假使我的密码是 123456):
echo "123456" | sudo rm -rf /*
那么在执行的时候,我只需要./clear.sh就可以清空我的整个数据库。
方式二
重定向
用重定向方法实现交互的前提是指令需要有参数来指定密码输入方式,如ftp就有-i参数来指定使用标准输入来输入密码
shell用重定向作为标准输入的用法是:cmd< 使用场景:不仅仅输入一个密码,还需要输入用户名。 expect echo + 管道符不是什么时候都可以生效(比如我写的自动提交博客脚本最后需要输入我的服务器的 git 仓库密码就不生效),因此我们可以使用 expect 方法来执行。 这里的语句是这样的: 再举一个例子 这个例子是我真实的脚本文件(但是磨掉了密码),平时用于往我的服务器中提交 hexo 博客 首先进入到hexo文件夹下 因为要用到sudo 来 clean/generate/deploy我的博客,所以我这里使用一个 echo+管道符,输入一次 sudo 命令(短时间内不需要再重复输入,所以我只写了一个) generate 一下 hexo 文件 提交到远程仓库,这里需要输入远程仓库的密码,所以我用spawn标记这句话 当 expect(发现)到"password:"后执行send 将我的密码 send(发送到)到控制台 到此这篇关于Shell 脚本自动输入密码的三种方式小结的文章就介绍到这了,更多相关Shell 自动输入密码内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
ftp -i -n 192.168.21.46 <
方式三
set timeout 30 spawn ssh -l 用户名 10.125.25.189 expect "password:" send "要输入的密码" interact
cd /Users/jim/hexo echo '123456' | sudo -S hexo clean sudo hexo g spawn sudo -S hexo d expect "password:" send "123456"
相关内容
- Linux中sftp常用命令整理_linux shell_
- Linux常用高频命令_linux shell_
- 详解sed -i 命令入门教程_linux shell_
- Shell脚本实现监测文件变化的示例详解_linux shell_
- Linux 中ls命令的使用详细介绍_linux shell_
- 2022最新vmstate 命令详解_linux shell_
- shell进度条追踪指令执行时间的场景分析_linux shell_
- Linux查看日志文件写入速度的4种方法详解_linux shell_
- Shell常用服务器日志分析命令总结_linux shell_
- shell script获取文件名或者目录名称的方法_linux shell_
