> Date: Tue, 30 Mar 2004 09:31:17 -0500
>>> I have a program that calls a script to print files, both on windows and
>>> on unix systems.
>>> Because of the windows systems, one argument to the script is like this:
>>> \\host\queue
>>> Depending on the name of queue, this makes the script on unix go
>>> haywire:
>>> \x is '\' 'x', but \t becomes '<tab>'
>>> is there any way to start a shell which prevents this horrible mess?
>>> The only alternative is to rename all my print-queues :-(
>> AFAIK, none of the common shells automatically translate \t and \n. If
>> any translation is done, it's by individual commands, e.g. "echo". They
>> generally provide a way to suppress it, or you must escape the
>> backslashes (e.g. change \t to \\t before passing the string to the
>> command).
>> If you show the script, perhaps we can provide more detailed guidance.
> Aha - it's echo then. The faulty part is something like this:
> host=`echo $1 | cut -d"\\" -f1`
> queue=`echo $1 | cut -d"\\" -f2`
There's no need for an external command:
oldIFS=$IFS
IFS='\'
set -- $1
host=$1
queue=$2
IFS=$oldIFS
Quote:> Time to go play with bash and ${param:offset:length}.
--
Chris F.A. Johnson http://cfaj.freeshell.org/shell
===================================================================
My code (if any) in this post is copyright 2004, Chris F.A. Johnson
and may be copied under the terms of the GNU General Public License