我正在編寫一個 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
請注意,我尚未在此設定主機名稱。你可以這麼做。