Я пытаюсь получить сценарий запуска, требующий ввода данных пользователем, работающего, прежде чем gdm запустится (сценарий должен позволить мне выбирать из списка xorg.conf's тот, который я хотел бы использовать для текущей сессии).
Уже испытанное создание pregdm.conf в/etc/init, содержа:
start on filesystem
stop on runlevels [06]
# ...
console output
script
# script that uses read to gather user input and replaces xorg.conf with the selected one
end script
и изменение start on
в/etc/init/gdm.conf к:
start on (filesystem
and started dbus
and started pregdm
and (drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
or stopped udevtrigger))
Echos отображены в консоли, но я не могу заставить ее ожидать ввода данных пользователем: gdm немедленно запускается.
Какие-либо указатели?
Большое спасибо
Выскочка не предназначается для интерактивного использования.
Вероятно, что стандартный вход для Вашего сценария перенаправляется далеко от Вас. Вы могли попытаться использовать другой дескриптор файла.
#!/bin/bash
exec 3<&0
read -u 3 -p "Choose one: " input
exec 3<&-
Вот полный демонстрационный сценарий, который показывает вход, прибывающий из файла и от пользователя:
#!/bin/bash
exec 3<&0
while read -r line
do
read -r -p "$line " -u 3 input
echo "$line/$input"
done < inputfile
Если Вы используете оболочку, которая не имеет -u
опция для чтения:
read input <&3