自动插入密码的“apt-get update”Bash 脚本

Edw*_*ard 5 command-line bash scripts expect

我想让shell脚本启动sudo apt-get update,自动插入密码sudo并自动按回车键。

我试过了:

#!/bin/bash
sudo apt-get update
expect "[sudo] password for username: "
send "password"
Run Code Online (Sandbox Code Playgroud)

d a*_*s y 7

你可以做

#!/bin/bash
echo password | sudo -S apt-get update
Run Code Online (Sandbox Code Playgroud)

来自man sudo和来自Stackoverflow

-S--stdin 将提示写入标准错误并从标准输入读取密码,而不是使用终端设备。密码后必须跟有换行符。

如果您的密码包含特殊字符,请在密码周围使用单引号,例如echo 'p@ssowrd'

  • 这是可行的,但我要警告你,当你在像这样的 shell 脚本中以明文形式保存密码时,入侵者很容易找到密码。 (3认同)