Re: Patch to pg_ctl to better support paths containing
От | Bruce Momjian |
---|---|
Тема | Re: Patch to pg_ctl to better support paths containing |
Дата | |
Msg-id | 200109220424.f8M4Oji26347@candle.pha.pa.us обсуждение исходный текст |
Ответ на | Re: Patch to pg_ctl to better support paths containing (Peter Eisentraut <peter_e@gmx.net>) |
Список | pgsql-patches |
Sorry, for some reason my email reader did not group these together. Removed from patch queue. > Barry Lind writes: > > > Attached is a set of changes to pg_ctl that I have been using that fixes > > problems I have had with pg_ctl when the paths contains spaces. > > > ! CMDNAME=`basename "$0"` > > OK. > > > else > > # look for it in PATH ('which' command is not portable) > > ! for dir in `echo "$PATH" | sed 's/ /\\\_/g' | sed 's/:/ /g'` > > do > > + dir="`echo $dir | sed 's/\\\_/ /g'`" > > # empty entry in path means current dir > > [ -z "$dir" ] && dir='.' > > Probably better to do this with IFS. Btw., this piece of code exists in > identical form in most other PostgreSQL shell scripts. Do you intend to > fix those as well? > > > ! DEFPOSTOPTS="$PGDATA/postmaster.opts.default" > > ! POSTOPTSFILE="$PGDATA/postmaster.opts" > > ! PIDFILE="$PGDATA/postmaster.pid" > > This is not necessary. > > > if [ "$op" = "status" ];then > > ! if [ -f "$PIDFILE" ];then > > ! PID=`sed -n 1p "$PIDFILE"` > > if [ $PID -lt 0 ];then > > ... more similar stuff OK ... > > > else > > # if we are in restart mode, then look for postmaster.opts > > ! eval set X "`cat "$POSTOPTSFILE"`"; shift > > po_path="$1" > > That is not portable. There is no portable way to have double quotes > within backticks within double quotes. You might be able to do something > along the lines of > > foo=`cat "$POSTOPTSFILE"` > eval set X "$foo"; shift > > The expression in question was carefully engineered to handle single > quotes and spaces in the POSTOPTSFILE correctly, so be careful. ;-) > > > if [ -n "$oldpid" ];then > > sleep 1 > > ! if [ -f "$PIDFILE" ];then > > ! if [ "`sed -n 1p "$PIDFILE"`" = "$oldpid" ];then > > echo "$CMDNAME: cannot start postmaster" 1>&2 > > echo "Examine the log output." 1>&2 > > Same problem here. > > -- > Peter Eisentraut peter_e@gmx.net http://funkturm.homeip.net/~peter > > > ---------------------------(end of broadcast)--------------------------- > TIP 5: Have you checked our extensive FAQ? > > http://www.postgresql.org/users-lounge/docs/faq.html > -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026
В списке pgsql-patches по дате отправления: