最近、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」になっていたみたいです


