最近、AIを利用してシェルスクリプトをGoogle Geminiで作成して貰って、過不足を自分で編集するような流れが増えました。
昨日ですが、下記のような感じでGeminiで作成してコピーしましたが、if分の箇所で構文エラーになります。何度見直してもエラーも見つからずファイルのフォーマットをUTF8に変更したりして1時間ほど原因を探っていました
# Geminiで作成したシェルスクリプトの一部です if [ ! -f "${TEMP_RESULT_FILE}" ]; then # TEMP_RESULT_FILE が存在しない場合 STT_MESSAGE="ファイルがありません" PYTHON_EXIT_CODE=1 # 外部処理エラーとして強制的に1を設定 else # ファイルが存在する場合のみ読み込む STT_MESSAGE=$(cat "${TEMP_RESULT_FILE}") fi
構文チェックでは以下のエラーです
# sh -n test.sh test.sh: 行 3: 予期しないトークン `then' 周辺に構文エラーがあります test.sh: 行 3: ` if [ ! -f "${TEMP_RESULT_FILE}" ]; then'
改行コードや変な特殊文字が原因と思い、テキストエディタに貼り付けて制御文字を確認したら、半角空白が「NBSP」の文字コードになっています。

手動で空白を打ち直して構文エラーはなくなりましたが、結構面倒でした。普段はChatGPTを使っているので、久しぶりにGeminiを使うとこんな事になるとは面倒でした。
この事象毎回ではなく、たまに空白が「NBSP」になっていたみたいです