debian安装程序上的Bash脚本不接受用于预置的用户输入

Mus*_*afa 5 linux bash debian sh

我有一个非常小的脚本需要在debian安装程序上运行:( 通过preseeding,预安装脚本)

echo -n -e " # Your option [1] [2] [3]: "
    read REPLY
    if [ "$REPLY" == "1" ] 
Run Code Online (Sandbox Code Playgroud)

脚本在这里停止,我按下的任何内容都只显示在屏幕上,但它不接受输入键.通常,当您按1并按Enter键时,读取应返回1到$ REPLY.但没有任何反应.它不断接受用户输入,但不会发生进一步的操作.

然后,我用ALT + F2切换到tty2并在那里运行脚本,它很好,它按预期工作,当我按; 需要输入.为什么tty1不接受像往常一样进入?

Int*_*ess 4

使用debconf进行此类配置,它可以完全满足您的需求。

改编自手册的示例

模板文件(debian/templates):

Template: your_package/select_option
Type: select
Choices: 1, 2, 3
Description: Which option?
 Choose one of the options
Run Code Online (Sandbox Code Playgroud)

脚本 (debian/config):

#!/bin/sh -e

# Source debconf library.
. /usr/share/debconf/confmodule

db_input medium your_package/select_option || true
db_go

# Check their answer.
db_get your_package/select_option
if [ "$RET" = "1" ]; then
   # Do stuff
fi
Run Code Online (Sandbox Code Playgroud)