为什么我在这个脚本中得到一个无限循环?

时间:2013-08-09 08:38:19

标签: bash

我正在尝试创建一个程序,要求用户添加目录,联系人姓名和联系电话。

如果用户指定的目录中已存在联系人姓名,则文件名将变为 contact(1).txt 。如果它也存在,则创建的新文件将变为 contact(2).txt 等。

当我尝试执行以下代码时,我得到一个无限循环,我尝试寻找错误,但找不到任何错误。

以下是我到目前为止编写的代码:

#!/bin/bash

directory=
if(($# == 0))
then
  echo -n "Please enter directory path:"
  read directory 
  cd $directory


  echo -n "Please enter contact name:"
  read name

  echo -n "Please enter contact number:"
  read number

else
  directory=$1
  cd ${directory}

  name=$2
  number=$3
fi

if [ -e $name.contact ];

then
  exists=1
  count=1

  while [ $exists==1 ];
  do
    name=$name\($count\)
    count=$(($count+1))
    if [ ! -f $name.contact ];
    then
      exists=0
      echo $exists
    fi

  done

  echo $number > $name.contact

else

  echo $number > $name.contact

fi

1 个答案:

答案 0 :(得分:1)

你需要空格:

if [ "$exists" = 1 ]; then

另请注意使用双引号和单等号。