Я пытаюсь использовать структуру «case» для предоставления вариантов и «if» для фактического выполнения действий. Я очень новичок в написании сценариев, поэтому, пожалуйста, простите меня за отсутствие знаний. Для упрощения я пропущу любые комментарии в коде и буду использовать только 1 (один) из вариантов для этого скрипта.
#!/bin/sh
echo " 01. Select a new hostname"
read -p "Make your selection: " varSelection
case $varSelection in
1)
read -p "$(echo -e 'Enter hostname here: \n')" varHostName
read -p "¿Are u sure u want to use \" $varHostname \"? (y/n)"varHostNameRight
if [ $varHostNameRight == y ]; then
sed -i "s/^\(HOSTNAME\s*=\s*\).*\$/\1$varHostName/" /etc/sysconfig/network
hostname $varHostName
else
if [ $varHostNameRight == n ]; then
fi
;;
esac
В этом примере я бы хотел добиться, чтобы если пользователь выбирал «y» в строке «04», после выполнения строк 6 и 7 он возвращается в меню «case» (на самом деле, в случае чем 1)) Я не знаю, как это сделать: S после того, как каждый параметр применяется в моем сценарии, я должен повторно запустить его, чтобы выбрать другой вариант.
Кроме того, если пользователь выбирает «нет» в строке «04», я хотел бы «зациклиться» на строке «03» ... но опять же, я не знаю, как это сделать :(
Любая помощь приветствуется!
С уважением,
Себас
1 ответ
Используйте цикл while
:
while read -p "Make your selection: " varSelection; do
...
done
И break
соответственно.
Похожие вопросы
Новые вопросы
linux
ВОПРОСЫ LINUX ДОЛЖНЫ БЫТЬ ПРОГРАММИРОВАНЫ. Используйте этот тег только в том случае, если ваш вопрос касается программирования с использованием API-интерфейсов Linux или специфичного для Linux поведения, а не только потому, что вы случайно запускаете свой код в Linux. Если вам нужна поддержка Linux, вы можете попробовать https://unix.stackexchange.com или сайт Stack Exchange конкретного дистрибутива Linux, например https://askubuntu.com или https://elementaryos.stackexchange.com/.
case
. См. здесь хороший примерcase
использование.