ディレクトリエラーを削除できません。

ディレクトリエラーを削除できません。
#!/bin/bash

touch student.txt
a=0
while [ $a -lt 15 ]
do
echo "enter name"
read name
echo $name >> student.txt
a=`expr $a + 1`
done
while read line
do
mkdir $line
cd $line
echo '#!/bin/bash' >> $line.sh
echo "echo '$line'" >> $line.sh

chmod u+x $line.sh
./$line.sh
cd ..
done  <student.txt
ls
a=0
while [ $a -lt 15 ]
do
while read line
do

rm -r $line
done <student.txt

a=`expr $a + 1`
done

スクリプトは生徒.txtファイルを生成し、ユーザーから生徒名への入力を受け取り、同じ名前のファイルとディレクトリを生成します。 ls作成されましたが、ディレクトリを削除するとエラーが発生します。 「ディレクトリ名」を削除できません。そのファイルやディレクトリはありません。 ls削除されたことを示します。なぜエラーが発生するのですか?

答え1

生成されたディレクトリを削除するループがあるためです。最初に削除してからもう14回試しましたが、すでに削除されているため、すべて失敗します。

ところで、コードに問題がたくさんあります。

  • パターンを読みやすいようにインデントします。
  • "$line"ユーザー入力にスペースがあってもスクリプトが破損する可能性があるため、引用符を使用してください。
  • 繰り返しのユーザー入力によってエラーが発生することもあります。以前は、重複に対してより良い作業テストを実行する必要があります。

また、次のようにコードを実行することを検討することもできます。https://www.shellcheck.net/

関連情報