【问题标题】:how to provide an input for whiptail using commhe and line如何使用 commhe 和 line 为whiptail 提供输入
【发布时间】:2025-12-17 22:55:02
【问题描述】:

所以,我必须在每台服务器上设置几台需要 mysql-server 的服务器。我决定编写一个 shell 脚本来向whiptail 输入一个要求用户输入密码的输入。我编写了 bash 脚本,但是当它到达鞭尾页面时它没有响应,有人可以帮我吗?谢谢

#!/bin/bash
sudo apt-get install mysql-server <<< "yes
mypassword
"

首先,当 sudo apt-get 询问是否安装时,它提供了“是”,但是当涉及到whiptail 时,它没有提供任何应有的输入,即mypassword

【问题讨论】:

  • 不明白。我在上面没有看到任何whiptail 调用。如果您的意思是为什么sudo 不接受来自标准输入的密码,请阅读man sudo 并了解-S-A
  • @jm666 嗨,我已经更新了我的问题

标签: linux bash shell heredoc


【解决方案1】:

您可以像这样运行apt-get install 来跳过安装过程中的提示,而不是向whiptail 提供输入:

DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server

如果您还想提供 root 密码,您可以这样做:

export DEBIAN_FRONTEND="noninteractive"

sudo debconf-set-selections <<< "mysql-server mysql-server/root_password password myrootpw"
sudo debconf-set-selections <<< "mysql-server mysql-server/root_password_again password myrootpw"

sudo apt-get install -y mysql-server

注意不要意外暴露您的 root 密码(即确保它不会出现在您的历史记录中,安全地删除任何包含它的脚本文件,我相信还有其他文件)。

我找到了这个信息here

【讨论】:

    最近更新 更多