Зробити команду повторного запуску скрипту на певному введенні користувача


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

Ви можете визначити функцію для цього, а потім скористатися рекурсією. Як приклад:

#!/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

Зауважте, що я ще не вказав ім'я хосту. Ви можете це зробити.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.