bash - expanze parametru s mezerou

Alexandr Malusek malusek na hroch.ujf.cas.cz
Středa Duben 11 18:01:41 CEST 2001


borik na zce.cz (Jiri Borik) writes:

> Asi jsem se nepresne vyjadril.

Dobre formulovana otazka je zaklad.

> To by mujprikaz mel v $1 vsechny parametry dohromady. Ja chci ale
> volat treba
> 
> mujprikaz a 'b1 b2' c
> 
> kde potrebuju aby $2='b1 b2'
>
> Zkousel jsem ze zoufalstvi vkladat '\' na ruzna mista, ale varianta s
> $2="b1 b2" se mi nepodarila.

V kazde rozumne knize o shellu by melo byt uvedeno poradi vyhodnoceni
prikazove radky. Prectete-li, pochopite. Neni to zadna veda:

$ cat a1
#!/bin/bash
 
function mujprikaz {
  echo "prvni parametr = _$1_ , druhy parametr = _$2_"
}
cisla="1 2 3 4"
par1='a "b1 b2" c'
par2="a \"b1 b2\" c"
par3="a \"$cisla\" b"
 
eval mujprikaz $par1
eval mujprikaz $par2
eval mujprikaz $par3
$ ./a1
prvni parametr = _a_ , druhy parametr = _b1 b2_
prvni parametr = _a_ , druhy parametr = _b1 b2_
prvni parametr = _a_ , druhy parametr = _1 2 3 4_

--
A. Malusek  (malusek na ujf.cas.cz)
UJF AV CR


Další informace o konferenci Linux