You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by Rainer Jung <ra...@kippdata.de> on 2010/10/01 15:56:24 UTC

Re: svn commit: r1002359 - /tomcat/trunk/bin/catalina.sh

Sorry, shell scripting once more, recent changes break the script on 
Solaris. Details below.

On 28.09.2010 23:20, markt@apache.org wrote:
> Author: markt
> Date: Tue Sep 28 21:20:06 2010
> New Revision: 1002359
>
> URL: http://svn.apache.org/viewvc?rev=1002359&view=rev
> Log:
> Respond to mturk's review. Make rm  more robust. Avoid potential issues with (...).
>
> Modified:
>      tomcat/trunk/bin/catalina.sh
>
> Modified: tomcat/trunk/bin/catalina.sh
> URL: http://svn.apache.org/viewvc/tomcat/trunk/bin/catalina.sh?rev=1002359&r1=1002358&r2=1002359&view=diff
> ==============================================================================
> --- tomcat/trunk/bin/catalina.sh (original)
> +++ tomcat/trunk/bin/catalina.sh Tue Sep 28 21:20:06 2010
...
> @@ -370,7 +376,7 @@ elif [ "$1" = "start" ] ; then
>
>     fi
>
> -  if [ ! -z "$CATALINA_PID" ]; then
> +  if [ ! -z "$CATALINA_PID" -a ! -e "$CATALINA_PID" ]; then
>       echo $!>  $CATALINA_PID
>     fi

The operator "-e" does not always exist. For instance /bin/sh on Solaris 
does not have it, so it bombs with

./test.sh: test: argument expected

It does exist for ksh and bash, but not for plain old sh, which we 
choose to use via the header "#!/bin/sh".

The following approximations can be used:

-r filename: True if filename exists and is readable.
-w filename: True if filename exists and is writable.
-f filename: True if filename exists and is a regular file,
              (so especially not a directory. Implementations vary
               about result for symbolic links, pipes etc.)
-d filename: True if filename exists and is a directory.
-h filename: True if filename exists and is a symbolic link.
-c filename: True if filename exists and is a character special file.
-b filename: True if filename exists and is a block special file.
-p filename: True if filename exists and is a named pipe (fifo).
-s filename: True if filename exists and has a size greater than zero.
-L filename: True if filename exists and is a symbolic link.

I'd say "-f" is the best approximation of what we have, "-w" would make 
most sense (unlikely someone specifies a directory for CATALINA_PID), 
and if we want to increase chances it almost always works it'll be "-f 
... -a -w ...".

The same applies to TC 6 since this was already backported.

Regards,

Rainer


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org