Nacitani promennych v bash
Alexandr Malusek
malusek na hroch.ujf.cas.cz
Pátek Únor 13 13:04:29 CET 1998
Matus Uhlar <uhlar na netlab.sk> writes:
> Michal Polak <mpolak na informatics.muni.cz> wrote:
> -> Potrebuju do promennych dostat jednotlive radky nejakeho vystupu.
> -> Bohuzel, promenne A,B,C jsou prazdne.
>
> mozno by pomohlo
> HLP=`echo 1 2 3`
> set $HLP
> A=$1
> B=$2
> C=$3
Toto reseni nesplnuje zadani ulohy, nebot v promennych A, B, C nejsou
jednotlive radky, ale jednotliva slova, protoze separatorem v prikazu
"set" jsou bile znaky (tj. mezera, tabelator a znak nove radky). Ale
je mozne modifikovat IFS, a pak to funguje:
$ cat s9
#!/bin/bash
HLP=`echo -e "line 1\nline 2\nline 3"`
echo "HLP = $HLP"
OLDIFS="$IFS"
IFS='
'
set $HLP
IFS="$OLDIFS"
A=$1; B=$2; C=$3
echo A=$A, B=$B, C=$C
$ s9
HLP = line 1
line 2
line 3
A=line 1, B=line 2, C=line 3
Ale uvedene reseni bych nedoporucil, pokud by se do promenne HLP melo
nacitat velike mnozstvi dat.
--
A. Malusek (malusek na ujf.cas.cz)
UJF AV CR
Další informace o konferenci Linux