Dialog в Linux Alpine
Dialog в Linux Alpine
Пример 1
#!/bin/sh
DIALOG=${DIALOG=dialog}
$DIALOG --title " Мой перый диалог " --clear \
--yesno " Привет! Перед вами мой первый диалог, \n прошу любить и жаловать (X)dialog.\n Круто, Да? " 10 40
case $? in
0) echo "Мне тоже нравится";;
1) echo "Спасибо, ваше мнение очень важно для нас";;
255) echo "Уходите, так быстро?";;
esac
DIALOG=${DIALOG=dialog} указывает, какой интерпретатор использовать
--title это заголовок диалога
--clear это очистка экран перед отображением диалога
--yesno это тип диалога (закрытый вопрос)
10 40 это размер окна
$? это код завершения диалога (да, нет)
255 это номер клавиши
Пример 2
#!/bin/sh
DIALOG=${DIALOG=dialog}
tempfile= `tempfile 2>/dev/null` || tempfile=/tmp/test$$
trap "rm -f $temfile" 0 1 2 5 15
$DIALOG --title "Ввод данных" --clear \
--inputbox "Привет, меня зовут bash, а тебя?\n Введите свое имя:" 16 51 2> $tempfile
retval=$?
case $retval in
0) echo "Очень приятно `cat $tempfile` будем знакомы" ;;
1) echo "Да ты бука..." ;;
255) if test -s $tempfile ; then
cat $tempfile
else
echo "By!"
fi ;;
esac
tempfile это команда, которая в случае успешного ввода, вернет путь к временному файлу, а в случае ошибки файл создается второй командой.
$$ это переменная в bash, которая расширяется до собственного процесса оболочки, по другому PID исполняемого скрипта или текущей оболочки, подробнее здесь
Команда trap выполняет ту или иную команду в зависимости от возвращаемого сигнала
Пример 3
#!/bin/sh
DIALOG=${DIALOG=dialog}
tempfile=`mktemp 2>/dev/null` || tempfile=/tmp/test$$
trap "rm -f tempfile" 0 1 2 5 15
$DIALOG --clear --title "Мои любимые исполнители" \
--menu "Куда бы вы хотели поехать? :" 40 60 4 \
"КНДР" "1"\
"Украина" "2"\
"Нигерия" "3"\
"Cирия" "4"\
"Ирак" "5" 2> $tempfile
retval=$?
choice=`cat $tempfile`
case $retval in
0) echo "Незабудьте маску, ласты и крем для загара в $choice сейчас жарко" ;;
1) echo "А как же красивый загар?" ;;
255) echo "Вы нажали esc" ;;
esac
Пример 4
#!/bin/sh
# create a file to store the password
output="psw.txt"
# remove the password file, if already exists.
trap "rm -f psw.txt" 2 15
dialog --title "Password" \
--insecure \
--clear \
--passwordbox "Please enter password" 10 30 2> $output
reply=$?
case $reply in
0) echo "You have entered Password : $(cat $output)";;
1) echo "You have pressed Cancel";;
255) cat $data && [ -s $data ] || echo "Escape key is pressed.";;
esac
# getting the value into a variable
var=$(cat $output)
echo $var
# remove the password file
rm psw.txt
# create a file to store the password
output="psw.txt"
# remove the password file, if already exists.
trap "rm -f psw.txt" 2 15
dialog --title "Password" \
--insecure \
--clear \
--passwordbox "Please enter password" 10 30 2> $output
reply=$?
case $reply in
0) echo "You have entered Password : $(cat $output)";;
1) echo "You have pressed Cancel";;
255) cat $data && [ -s $data ] || echo "Escape key is pressed.";;
esac
# getting the value into a variable
var=$(cat $output)
echo $var
# remove the password file
rm psw.txt
Источники
Последнее изменение: 07.10.2024 11:38
Связанные темы
Изменить часовой пояс в Linux Alpine
Установка сервера Apache Linux Alpine
Добавлять комментарии могут только авторизованные пользователи