1

Я пишу сценарий оболочки, который рандомизирует мое имя хоста, но печатает случайное имя хоста и запрашивает, если я хочу использовать это имя хоста, например

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 ответ1

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

Обратите внимание, что я еще не установил имя хоста в этом. Вы можете сделать это.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .