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'
then ~ fi
ブロック内に実行可能なコマンドが 1 つ以上あればエラーになりませんif~fi
全体をコメント アウトしないとダメっぽい実際が巨大なシェル スクリプトだったので、手違いで fi を消してしまったんじゃないかなどと考えて、ファイル全体に渡ってバグを探してしまい、小一時間無駄にしました(;´Д`)ぐんにょり