gpt4 book ai didi

linux - 如何通过命令行自动响应密码提示?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:34:07 24 4
gpt4 key购买 nike

我希望对 Linux 终端中的密码提示做出响应。我知道如何使用 echo 和非密码提示来做到这一点。例如,假设 whatsyourname.sh 在运行后提示我输入一个包含我名字的字符串,但不允许我的名字作为初始命令中的参数传递。我会做以下事情:

echo -e "dan" | ./whatsyourname.sh

但是,如果我运行的命令在运行后要求我输入密码,则以下命令不起作用:

echo -e "supersecurepassword" | sudo apt-get update

我猜这与在命令行中输入密码时隐藏字符有关。我将如何响应初始命令中的密码提示?

最佳答案

你正在寻找 sudo -S

解释 -S - man sudo

-S, --stdin Write the prompt to the standard error and read the password from the standard input instead of using the terminal device. The password must be followed by a newline character.

简单,

#!/bin/bash
echo "notsecure" | sudo -S apt-get update

变量,

#!/bin/bash
pass="notsecure"
echo $pass | sudo -S apt-get update

让我们继续打字,

#!/bin/bash
read -s -p "[sudo] sudo password for $(whoami): " pass
echo $pass | sudo -S apt-get update

解释 -s 和 -p - 帮助阅读

-r do not allow backslashes to escape any characters

-s do not echo input coming from a terminal

例如,如果您制作一个登录到多个服务器以查看 route -n 的脚本,这将非常方便。

关于linux - 如何通过命令行自动响应密码提示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42120659/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com