1 votes

Faire en sorte que Shell Shell réexécute la commande sur certaines entrées utilisateur.

J'écris un Shell Shell qui randomise mon nom d'hôte mais qui imprime le nom d'hôte aléatoire et me demande si je veux utiliser ce nom d'hôte par exemple.

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

(c'est la partie où je veux qu'il réexécute la commande pour NEXTHOST), j'ai laissé de côté le code pour "y" parce que je comprends déjà cette partie.

Comment faire pour que la commande soit relancée si je tape n ?

1voto

shivams Points 1683

Vous pouvez définir une fonction pour cela, puis utiliser la récursion. Par exemple :

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

Notez que je n'ai pas encore défini le nom d'hôte. Vous pouvez le faire.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X