0

ユーザーにディレクトリ、連絡先名、連絡先番号を追加するように求めるプログラムを作成しようとしています。

ユーザーが指定したディレクトリに連絡先名が既に存在する場合、ファイル名は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
4

1 に答える 1

1

ここにスペースが必要です:

if [ "$exists" = 1 ]; then

二重引用符と単一の等号の使用にも注意してください。

于 2013-08-09T08:41:20.207 に答える