Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 28 Jul 2005 12:40:29 -0400
From:      Garance A Drosehn <gad@FreeBSD.org>
To:        martin@orbweavers.co.uk
Cc:        freebsd-questions@FreeBSD.org
Subject:   Re: Shell script frustration
Message-ID:  <p0623090abf0eb41a85ad@[128.113.24.47]>
In-Reply-To: <1136.217.37.3.201.1122541837.squirrel@www.orbweavers.co.uk>
References:  <1559.192.168.0.10.1122502486.squirrel@192.168.0.5>    <p06230909bf0dd7e0e787@[128.113.24.47]> <1136.217.37.3.201.1122541837.squirrel@www.orbweavers.co.uk>

next in thread | previous in thread | raw e-mail | index | archive | help
At 10:10 AM +0100 7/28/05, martin@orbweavers.co.uk wrote:
>Garance wrote:
>  > What I do in this cases is create a script called "list_args.sh":
>>
>>  #!/bin/sh
>>  printf "\nlist_args.sh at `date +%H:%M:%S` with \$# = $#\n"
>>  # Process all parameters.
>>  N=0
>>  while test $# != 0 ; do
>>       N=$(($N+1))
>>       printf "    \$$N = [%3d] '$1'\n" ${#1}
>>       shift
>>  done
>>
>>  Then in your script, replace the ldapdelete command with
>>  list_args.sh.  That way you'll see *exactly* what ldapdelete
>>  is seeing for parameters, and that might help.
>
>I tried that one, with an echo $* - though I assume the printf
>prints it out 'more precise'?

Well, I also have versions that use an echo instead of printf.
The printf just makes it easier to have a "pretty" output.

The problem with using a plain 'echo *' is that there are
several different inputs which will produce the same output.

Compare:
         echo a b
     and echo "a b"
or      echo "a b"
     and echo "a b "

The outputs from `echo' will look the same, but the arguments to
the program are very different.  That's why my script lists out
the exact arguments, with their lengths.  I did that because
sometimes those details matter.  I have solved problems similar
to the one which is frustrating you by using this kind of script.

-- 
Garance Alistair Drosehn     =      gad@gilead.netel.rpi.edu
Senior Systems Programmer               or   gad@FreeBSD.org
Rensselaer Polytechnic Institute;             Troy, NY;  USA



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?p0623090abf0eb41a85ad>