Я пишу скрипт оболочки, который рандомизирует мое имя хоста, но выводит случайное имя хоста и спрашивает, хочу ли я использовать это имя хоста, например
NEXTHOST=$(sed `perl -e "print int rand(99999)"`"q;d" /usr/share/dict/words)
echo "Do you want to use this hostname? (y/n)
read variable_name
if [ "$variable_name" = n ] ; then
(это та часть, где я хочу, чтобы он повторно выполнил команду для NEXTHOST), я пропустил код для «y», потому что я уже понимаю эту часть.
Как мне заставить его повторно выполнить команду, если я введу n?
решение1
Вы можете определить функцию для этого, а затем использовать рекурсию. Например:
#!/bin/bash
#Defining hostgen function
hostgen() {
NEXTHOST=$(sed `perl -e "print int rand(99999)"`"q;d" /usr/share/dict/words)
echo $NEXTHOST
read -p 'Do you want to use this hostname? (y/n)' variable_name
if [ "$variable_name" = "n" ]; then
echo "Okay. I will generate again"
hostgen
else
echo "Your final hostname is : $NEXTHOST"
exit
fi
}
#Run hostgen for the first time
hostgen
Обратите внимание, что я пока не задал имя хоста. Вы можете это сделать.