[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: win32 short name and IFS='~'
From: |
Boehne, Robert |
Subject: |
RE: win32 short name and IFS='~' |
Date: |
Thu, 17 Apr 2003 16:53:21 -0500 |
Chuck,
Ok, let me get this out.
"Hello, I'm Robert, and I've never used shell functions."
Admitting it is the first step to recovery. ;)
Seriously, I'm not familiar with what can be done with them,
but if you can find a simple way to replace IFS with shell
functions, let us all know!
Regards,
Robert
-----Original Message-----
From: Charles Wilson [mailto:address@hidden
Sent: Thursday, April 17, 2003 4:49 PM
To: Boehne, Robert
Cc: Naofumi Yasufuku; Robert Boehne; address@hidden;
address@hidden
Subject: Re: win32 short name and IFS='~'
Actually, wasn't all this IFS stuff just a poor substitute for shell
functions? Now that we allow honest-to-god shell functions, why not use
those? Or am I missing something?
--Chuck
Boehne, Robert wrote:
> Naofumi,
>
> #! /bin/sh
> # How about ditching use of IFS totally in favor of a series of commands
> # to be executed. For example, we currently use
> show="echo"
> run=
>
> test_cmds='echo "do command one"~echo "do command two"~echo "do command
> three"'
>
> #then, rather than do this:
> save_ifs="$IFS"; IFS='~'
> for cmd in $test_cmds; do
> IFS="$save_ifs"
> $show "$cmd"
> $run eval "$cmd" || exit $?
> done
> IFS="$save_ifs"
>
> # suppose we used
> archive_cmds_1='echo "do command one"'
> archive_cmds_2='echo "do command two"'
> archive_cmds_3='echo "do command three"'
> archvie_cmds_max=3
>
> echo " We would do something like this: "
> n=0
> cmd=
> while true; do
> n=`expr $n + 1`
> cmd="\$archive_cmds_$n"
> if test $n -le $archvie_cmds_max ; then
> $show "$cmd"
> $run eval "$cmd" || exit $?
> else
> break;
> fi
> done
>
> The real trick to making this work is to get the
> shell quoting exactly the same so that we can simply
> take current command (~ separated lists) and convert them to
> a series without changing the quoting.
> The script above doesn't do this :( but it can be used
> by all to attempt to figure out the right quoting to
> have the desired result. This type of solution has
> the distinct advantage of not using any other character
> for IFS, and so cannot ever clash with characters in
> commands.
> I would also encourage the use of shell functions to
> simplify this, or any other bit of libtool for that matter.
>
> Thanks,
>