「近くに予期しない tokefi 構文エラーが発生しました。」エラーが表示され続けます。

「近くに予期しない tokefi 構文エラーが発生しました。」エラーが表示され続けます。

ファイルを削除した後、元の場所に復元するスクリプトを作成していますが、このエラーが引き続き表示されます。この問題を解決する理由と方法は何ですか?

 #!/bin/bash
 if [[ ! $1 ]]; then
 echo -e "Usage:\n\n\t$0 'file name'"
 exit 1
 fi

 f=$(ls 2>/dev/null -l /proc/*/fd/* | fgrep "$1 (deleted" | awk '{print $9}')

  if [[ $f ]]; then
  echo "fd $f file found..."
  read -p "Do you want to recover this file? [Yes/No] " confirmation
   [[ $confirmation =~ ^[YyJj] ]] || { echo "Canceled"; exit }
  cp -v "$f" "$1"
  fi

答え1

エラーは次の行で発生します。

[[ $confirmation =~ ^[YyJj] ]] || { echo "Canceled"; exit }

ブロックの終わりを示すために終了した後にセミコロンを追加すると、少なくとも次のエラーが発生しないようにする必要があります。

[[ $confirmation =~ ^[YyJj] ]] || { echo "Canceled"; exit; }

つまり、私はこのタイプの表記法があまり好きではなく、OPで投稿したケースのような場合には個人的に必要ではないと思います。この構文の問題を回避するために完全なステートメントを書くことはそれほど難しくありませんif/then/fi

関連情報