
Запрос интерфейса «да нет» для пользователя с целью повторного выполнения блока кода. Предположим, что блок кода — это echo «Hello»
решение1
Вы можете попробовать что-то простое, например:
#!/bin/bash
while true; do
echo "Hello world"
read -p "Re-run this program? (y/n)" answer
if [ "$answer" == "n" ]; then
break
fi
done
Это выведет «Hello world» внутри цикла и потребует ввода «n» для выхода из него.
решение2
Используйте цикл для повторения последовательности команд. Используйте read
для получения ввода от пользователя:
#!/bin/bash
want_to_print=yes
while [[ $want_to_print == yes ]] ; do
read -p 'Hello ' want_to_print
done
решение3
Есть множество способов сделать это, на разных языках. Поскольку bash уже был сделан, я добавлю AWK
:
$ awk 'BEGIN{ MSG="yes/no?"; while ( 1 ){ print MSG;getline line; if (line == "yes") {print "HELLOWORLD"} else {exit}}}'
yes/no?
yes
HELLOWORLD
yes/no?
yes
HELLOWORLD
yes/no?
no
xieerqi:
$