Ich schreibe ein Shell-Skript, das meinen Hostnamen zufällig auswählt, aber den zufälligen Hostnamen ausgibt und mich fragt, ob ich diesen Hostnamen verwenden möchte, zum Beispiel
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
(das ist der Teil, bei dem ich möchte, dass der Befehl für NEXTHOST erneut ausgeführt wird), ich habe den Code für „y“ ausgelassen, weil ich diesen Teil bereits verstehe.
Wie kann ich erreichen, dass der Befehl erneut ausgeführt wird, wenn ich „n“ eingebe?
Antwort1
Sie können hierfür eine Funktion definieren und dann Rekursion verwenden. Als Beispiel:
#!/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
Beachten Sie, dass ich den Hostnamen hier noch nicht festgelegt habe. Das können Sie tun.