Bash脚本在文件结束后循环

时间:2015-01-18 00:56:23

标签: linux bash loops unix

我的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

2 个答案:

答案 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