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