我正在编写一个 shell 脚本,它可以随机化我的主机名,但会打印随机主机名并提示我是否要使用此主机名。例如
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
请注意,我尚未在此设置主机名。您可以这样做。