- - PR -
PostgreSQLの実行スクリプトでエラーがでる。
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 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 | ||||
|
投稿日時: 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 ] | ||||
|
投稿日時: 2006-02-20 12:45
以下のように、; を外してみましたが、
結果は同じでした。 やはり構文がおかしいのでしょうか? if [ -f $PGSQL/bin/postmaster ] then if[ -f $PGSQL/data/postmaster.pid ] then | ||||
|
投稿日時: 2006-02-20 13:02
20行目で、
bashのビルトインコマンド「if」とコマンド「]」の間にスペースを 挿入していないのが原因では? コマンドラインで次のようにすると、同じエラーメッセージが出ました。
-- typo「bashのビルトインコマンドコマンド」を修正 [ メッセージ編集済み 編集者: ちいにぃ 編集日時 2006-03-11 11:50 ] | ||||
|
投稿日時: 2006-02-20 14:42
ちいにぃ様、アドバイスありがとうございます。
お蔭様で、問題が解決致しました。 ビルトインコマンドコマンド「if」とコマンド「]」の間にスペースを 挿入したところ、解決致しました。 | ||||
1
