GNU bash で syntax error near unexpected token `fi' エラー

Posted by
ぴろり
Posted at
2015/08/08 10:16
Trackbacks
関連記事 (0)
Post Comment
コメントできます
Category
開発メモ カテゴリ
カバーイメージ

 GNU bash (GNU Bourne-Again SHell) でシェル スクリプトを作成中、件名のエラーが出ました。具体的には、ブロック内のコマンドをコメント アウトしただけなのですが、実はこれが問題だったという覚書き。

このエントリーをはてなブックマークに追加  

#!/bin/sh
if [ -f $0 ]; then
    echo true
fi

 test.sh は、自分自身($0)が存在すれば、画面に true と表示するだけのシェル スクリプトです。

$ /bin/sh --version
GNU bash, version 3.2.39(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2007 Free Software Foundation, Inc.
$ ./test.sh
./test.sh: line 4: syntax error near unexpected token `fi'
./test.sh: line 4: `fi'
  • 3 行目を有効にして実行すると true と表示されます
  • 3 行目をコメント アウトして実行すると上記のエラーが発生します
  • それ以外の部分は全く触っていないので、typo などが原因ではなさそうです
  • then ~ fi ブロック内に実行可能なコマンドが 1 つ以上あればエラーになりません
  • 処理をスキップしたい場合、ブロックではなく、if~fi 全体をコメント アウトしないとダメっぽい

 実際が巨大なシェル スクリプトだったので、手違いで fi を消してしまったんじゃないかなどと考えて、ファイル全体に渡ってバグを探してしまい、小一時間無駄にしました(;´Д`)ぐんにょり

参考リンク

このエントリーをはてなブックマークに追加  


更新履歴

Updated at
2015/08/09 08:50
更新メモ
r4 "参考リンク"セクションを追記

この記事を読んだ人はこんな記事も読んでいます記事リコメンデーションについて

カバー画像:ぬるぬるローションの製作 その2

関連記事/トラックバック

関連記事/トラックバックはまだありません

この記事にトラックバックを送るには?

コメントを投稿する

 
 (必須, 匿名可, 公開, トリップが使えます)
 (必須, 匿名可, 非公開, Gravatar に対応しています)
 (必須)
スパム コメント防止のため「投稿確認」欄に ランダムな数字 CAPTCHAについて を入力してから送信してください。お手数ですがご協力のほど宜しくお願いいたします。