[tex-live] Comment on Re: TeXLive-CD/DVD (Installation)

David Kastrup dak at gnu.org
Thu May 24 19:01:54 CEST 2007


"Zdenek Wagner" <zdenek.wagner at gmail.com> writes:

> 2007/5/24, Oliver Bandel <oliver at first.in-berlin.de>:
>> On Wed, May 23, 2007 at 07:23:36PM +0200, Hans Hagen wrote:
>> > David Kastrup wrote:
>> > >"George N. White III" <gnwiii at gmail.com> writes:
>> [...]
>
>>
>> And btw. it's also possible to create filenames that have spaces
>> on the command line.
>> The problem is, that most (all?) shells doesn't handle them correctly.
>>
>> So, we need to invent at least one shell, that does not have a problem
>> with such names.
>>
> The problem is that the special characters have to be re-escaped if
> the parameter is sent to some other program. Imagine a simple (somehow
> foolish) script:
>
> #!/bin/bash
> echo "Number of parameters = $#"
> if [ $# -eq 1 ]
> then
>  ./param $1
> fi
>
> If you call it with an escaped space within the first parameter, you'll get:
>
> [wagner at cluster1 wagner]$ ./param some\ text
> Number of parameters = 1
> Number of parameters = 2
>
> Beware! If you call this script with one parameter, you will fall into
> an endless loop!

Nonsense.  You don't need to "reescape".  All you need is properly
quote:

./param "$1"

That's all.  Or

./param "$@"

if you want to pass all (remaining) parameters.

Before starting to bash shells, one should read the minimal amount of
documentation that can be considered reasonable for using _any_
language.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum


More information about the tex-live mailing list