我的bash脚本会询问用户的名字,姓氏,地址和电话号码,并将用户输入的信息写入格式为" firstname.lastname&#34 ;;的文件中。但是我想多次重复一遍(我实际上想要做一个像do..while循环这样的东西,它运行至少一次,并询问用户是否要继续创建帐户,但我看到没有做。 ..而对于bash似乎)。因此,当我在终端中执行这个bash脚本时,它将询问要创建多少帐户,并且我提供所有输入,但它只运行一次。我究竟做错了什么?这是我的剧本。
#!bin/bash
echo "How many accounts are you creating?"
read num
echo "Enter first name"
read fName
echo "Enter last name"
read lName
echo "Enter address"
read add
echo "Enter phone number"
read phn
echo "Enter gender m for male and f for female"
read gender
if [ "$gender" == "m" ]
then
sex="male"
elif [ "$gender" == "f" ]
then
sex="female"
else
echo"Invalid gender. Restart the script and enter a valid gender"
exit 0
fi
for (( i = 0; i<=num; i++))
do
cat > $fName.$lName <<-EOF
Full Name: $fName $lName
Address: $add
Phone number: $phn
Gender: $gender
EOF
done
答案 0 :(得分:2)
将输入代码放在循环中,或将该代码包装在函数中并在循环内调用该函数。
答案 1 :(得分:2)
zerobandwidth的回答是正确的,但作为替代答案,实际上很容易做你最初想做的事情:
while true; do
# Your account creation code goes here
echo "Create another account (y/n)?"
read another
if [ "$another" != y ]; then
break
fi
done