Portál AbcLinuxu, 9. července 2025 19:46


Dotaz: promenna v shellovskem skriptu-dvoji substituce

11.1.2007 16:39 Terka | skóre: 13
promenna v shellovskem skriptu-dvoji substituce
Přečteno: 178×
Odpovědět | Admin
mam skript s parametry: ./skript cau nazdar ahoj

chci udelat cyklus pres $1 $2 a uz ne $3

ve skriptu mam promennou: $promenna s obsahem "3"

jak vypisu parametr skriptu $3 pomoci $promenna napr chci li vypsat $3 chci neco jako $$promenna, ale to mi nebere

proste chci aby mi z $$promenna udelal substituci $3 a znovu substituci ahoj
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

11.1.2007 17:47 Pavel1 | skóre: 33
Rozbalit Rozbalit vše Re: promenna v shellovskem skriptu-dvoji substituce
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nejlépe je si o skriptech něco málo přečíst a vyhledat. Otázka je, jestli to bylo vykonáno před položením dotazu. Např. zde se o tom mluví. Jinak pro "postupné nabírání" parametrů skriptu lze použít shift.
12.1.2007 09:44 Terka | skóre: 13
Rozbalit Rozbalit vše Re: promenna v shellovskem skriptu-dvoji substituce
diky, ten shift problem nebyl, jen ta dvoji substituce
Jakub Hájek avatar 11.1.2007 18:23 Jakub Hájek | skóre: 14 | blog: zamek | Praha
Rozbalit Rozbalit vše Re: promenna v shellovskem skriptu-dvoji substituce
Odpovědět | | Sbalit | Link | Blokovat | Admin
Něco takového?
festr@festrcomp ~ $ cislo="tri"
festr@festrcomp ~ $ tri="ahoj svete"
festr@festrcomp ~ $ eval echo $`echo $cislo`
ahoj svete
Možná že to jde nějak elegantněji, každopádně eval bude to co IMHO hledáš.
Teprve tehdy, až nebudeme mít co ztratit, budeme opravdu svobodní.
Jakub Hájek avatar 11.1.2007 18:27 Jakub Hájek | skóre: 14 | blog: zamek | Praha
Rozbalit Rozbalit vše Re: promenna v shellovskem skriptu-dvoji substituce
festr@festrcomp ~ $ eval echo "$"$cislo""
ahoj svete
To bude lepší.
Teprve tehdy, až nebudeme mít co ztratit, budeme opravdu svobodní.
11.1.2007 18:29 Andrej Herceg | skóre: 43
Rozbalit Rozbalit vše Re: promenna v shellovskem skriptu-dvoji substituce
Dá sa použiť aj
promenna="3"
echo ${!promenna}
12.1.2007 09:43 Terka | skóre: 13
Rozbalit Rozbalit vše Re: promenna v shellovskem skriptu-dvoji substituce
diky vsem, resila jsem to pres awk, vim ze to neni spravne pokud jsou v zadani uvozovky a b "c d" posledni=`echo $*|awk '{print $(NF)}'`
12.1.2007 09:57 Andrej Herceg | skóre: 43
Rozbalit Rozbalit vše Re: promenna v shellovskem skriptu-dvoji substituce
Ak ide o získanie posledného parametra:
posledni=${!#}
12.1.2007 10:17 Andrej Herceg | skóre: 43
Rozbalit Rozbalit vše Re: promenna v shellovskem skriptu-dvoji substituce
Ak ide o spracovanie všetkých parametrov okrem posledného a posledný parameter sa má spracovať zvlášť:
while :
do
    if [ "$#" -le 1 ]; then break; fi;
    echo "$1"
    shift
done
echo "Posledny: $1"
alebo
for parameter in "${@:1:$#-1}"
do
    echo "$parameter"
done
echo "Posledny: ${!#}"
alebo
for (( i=1; i<=$#-1; i++ ))
do
    echo "$i: ${!i}"
done
echo "Posledny: ${!#}"
alebo
echo "Posledny: ${!#}"
set "${@:1:$#-1}"
for parameter in "$@"
do
    echo "$parameter"
done
určite je ešte veľa rôznych riešení :)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.