実行可能ファイルを見つけるためのスクリプトを記述するための以下のプログラムの 53 行目のファイル末尾に構文エラーがあります

実行可能ファイルを見つけるためのスクリプトを記述するための以下のプログラムの 53 行目のファイル末尾に構文エラーがあります
#!/bin/sh

FINDALL=false

if [ -a "$1" ]
 FINDALL=true
 shift
    for arg
                do
               if [ -f $file" ]
                  if [ ! -d "$file" -a -x "$file" ]
                        then
                        echo $file
                  else
                        echo $file is NOT FOUND
                  fi
               else
                 FOUND=false
               case $PATH in
               :*)
                 PATH=".:$PATH"
               ;;
               *::*)
                PATH=`echo $PATH | sed -e 's/::/:.:/g'`
               ;;
               *:)
               PATH="$PATH:."
               ;;
               esac
               IFS=$OLDIFS
               IFS=:
               set -- $PATH
               IFS=$OLDIFS
                 for $P in PATH
                    if [ ! "$P/$file" -a -x "$P/$file" ]
                         then
                           FOUND=TRUE
                            echo $P/$file
                         if  FINDALL=FALSE
                           break
                         fi
                     else
                       if [ "$FOUND" = false ]
                        then
                        echo $file is NOT FOUND
                       fi
                done
              fi
      done
fi

答え1

スクリプトに大量のエラーがあります。テキストエディタを使用している場合は、vim構文の強調表示が役立ちます。また、@steeldriverが推奨しているように、こうしたタイプのエラーのデバッグにも役立つ優れたウェブサイト

関連情報