Возможный дубликат:
Сценарий Upstart: обнаружение клавиши Shift при загрузке
Я хочу добавить вопрос во время загрузки . Пользователь должен вводить данные с клавиатуры, и в зависимости от этих вводов внутри скрипта есть if.
«Хотите X или Y?»
«Или просто подождите 10 секунд, чтобы по умолчанию X».
Это немного сложно, но вы можете использовать плимут, чтобы общаться с пользователем, пока система запускается. Это будет работать только в том случае, если ваша работа блокирует запуск, потому что как только уровень выполнения 2 достигнут и plymouth завершен, вы больше не сможете взаимодействовать.
По сути, вы хотите выполнить «plymouth ask-question» или «plymouth watch-keystroke», и пользователю будет предложено это сделать. Так что, если вы хотите подождать 10 секунд для пользователя, у вас будет такая выскочка (это довольно теоретически и не проверено!):
start on starting rc RUNLEVEL=[2345]
task
script
myscript=`mktemp /tmp/killme.sh.XXXXXX`
chmod 0750 /tmp/killme.sh
cat > $myscript <<EOF
#!/bin/sh
# script is sent key pressed
cat > /tmp/keypresses.txt
kill -USR1 $
EOF
key=""
handle_usr1() {
key=`cat /tmp/keypresses.txt`
plymouth display-message --text="you pressed $key"
exit 0
}
trap handle_usr1 USR1
plymouth watch-keystroke --command=$myscript --keys="ABCD"
timeleft=10
while [ $timeleft -gt 0 ] ; do
plymouth display-message --text="you have $timeleft seconds to press A,B,C, or D..."
timeleft=(($timeleft-1))
done
plymouth display-message --text="Timed out..."
end script