如何使用commhe和line为whiptail提供输入

时间:2017-04-13 15:04:12

标签: linux bash shell heredoc

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

create database TEST;
USE TEST;
CREATE TABLE TEST.DSMSreservation
(
   date DATETIME  NULL DEFAULT NULL,
   realisee INT  NULL DEFAULT NULL
);

delimiter $$
create trigger updateRealisee before insert on TEST.DSMSreservation 
for each row
   begin
      IF (new.date < NOW())  THEN
      SET new.realisee = 1;
   end if;
   end;
$$
delimiter ;  

INSERT INTO DSMSreservation VALUES ('2012-06-08 12:13:14',0);
INSERT INTO DSMSreservation VALUES ('2017-06-08 12:13:14',0);
INSERT INTO DSMSreservation VALUES ('2016-06-08 10:13:14',0);
INSERT INTO DSMSreservation (date) VALUES ('2016-06-08 16:13:14');

首先,当sudo apt-get询问是否安装时,它提供yes,但是当它发出whiptail时它不会提供任何输入,因为它应该是

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以像这样运行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