Re: Patch to pg_ctl to better support paths containing
От | Peter Eisentraut |
---|---|
Тема | Re: Patch to pg_ctl to better support paths containing |
Дата | |
Msg-id | Pine.LNX.4.30.0109201505310.684-100000@peter.localdomain обсуждение исходный текст |
Ответ на | Patch to pg_ctl to better support paths containing spaces (Barry Lind <barry@xythos.com>) |
Ответы |
Re: Patch to pg_ctl to better support paths containing
Re: Patch to pg_ctl to better support paths containing |
Список | pgsql-patches |
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
В списке pgsql-patches по дате отправления: