- PR -

PostgreSQLの実行スクリプトでエラーがでる。

1
投稿者投稿内容
banboo
大ベテラン
会議室デビュー日: 2003/12/05
投稿数: 210
投稿日時: 2006-02-20 11:10
PostgreSQLについて質問がございます。

以下のようなスクリプトを作成しました。

/etc/rc.d/init.d/postgreSQL start

実行すると、以下のようなエラーが出ます。

# /etc/rc.d/init.d/postgreSQL start
/etc/rc.d/init.d/postgreSQL: line 20: syntax error near unexpected token `then'
/etc/rc.d/init.d/postgreSQL: line 20: ` if[ -f $PGSQL/data/postmaster.pid ]; then'

エラーメッセージが指し示す、line20を見てみましたが、
構文的にはおかしくないようなきがします。
どこがおかしいのでしょうか?どなたかわかる方がいらしゃいましたら
ご教授下さい。

#!/bin/bash
#
#Startup script for postgreSQL
#
#chkconfig: - 99 50
#description: PostgreSQL
#processname: postmaster
#pidfile:

. /etc/rc.d/init.d/functions

PGSQL=/usr/local/pgsql
prog=PostgeSQL

case "$1" in
start)
if [ -f $PGSQL/bin/postmaster ]; then


if[ -f $PGSQL/data/postmaster.pid ]; then
echo "PostgreSQL running"
else
su - -c "$PGSQL/bin/postmaster -D $PGSQL/data -i -S" postgres
fi
fi
;;

stop)
if [ -f $PGSQL/bin/pg_ctl ]; then
if[ -f $PGSQL/data/postmaster.pid ]; then
su - -c "$PGSQL/bin/pg_ctl stop -D $PGSQL/data" postgres
else
echo "PostgreSQL is not running"
fi
fi
;;

*)
echo "Usage: `basename $0` {start|stop}" 1>&2
exit 1

esac

exit 0

今川 美保(夏椰)
ぬし
会議室デビュー日: 2004/06/10
投稿数: 363
お住まい・勤務地: 神奈川県茅ヶ崎市
投稿日時: 2006-02-20 11:23
bashのif文がおかしいと思うのは私の不勉強でしょうか?
http://www.h7.dion.ne.jp/~matsu/feature/bash/basic/if.html

#ってかHPのBashでif [条件]; then で「;」を書いた記憶がないので・・・。
#いくつかのページを見ていると「;」があったりなかったりで・・・

[ メッセージ編集済み 編集者: 夏椰|。σ)o 編集日時 2006-02-20 11:27 ]
banboo
大ベテラン
会議室デビュー日: 2003/12/05
投稿数: 210
投稿日時: 2006-02-20 12:45
以下のように、; を外してみましたが、
結果は同じでした。
やはり構文がおかしいのでしょうか?

if [ -f $PGSQL/bin/postmaster ] then


if[ -f $PGSQL/data/postmaster.pid ] then
ちいにぃ
大ベテラン
会議室デビュー日: 2002/05/28
投稿数: 244
投稿日時: 2006-02-20 13:02
20行目で、
bashのビルトインコマンド「if」とコマンド「]」の間にスペースを
挿入していないのが原因では?

コマンドラインで次のようにすると、同じエラーメッセージが出ました。
引用:
$ touch sample

$ if [ -f sample ]; then echo "sample"; fi
sample

$ if[ -f sample ]; then echo "sample"; fi
bash: syntax error near unexpected token `then'



--
typo「bashのビルトインコマンドコマンド」を修正

[ メッセージ編集済み 編集者: ちいにぃ 編集日時 2006-03-11 11:50 ]
banboo
大ベテラン
会議室デビュー日: 2003/12/05
投稿数: 210
投稿日時: 2006-02-20 14:42
ちいにぃ様、アドバイスありがとうございます。

お蔭様で、問題が解決致しました。

ビルトインコマンドコマンド「if」とコマンド「]」の間にスペースを
挿入したところ、解決致しました。

1

スキルアップ/キャリアアップ(JOB@IT)