Portál AbcLinuxu, 13. května 2025 04:04

Dotaz: Nastavení proměnné

22.12.2010 01:04 IceCoffee
Nastavení proměnné
Přečteno: 169×
Odpovědět | Admin
Zdravím, nevím, kam tohle napsat, tak to snad píšu správně. Potřebovala bych poradit, jak přesně nastavit proměnnou, aby mi funguvalo to ${parametr:-value}, ať to nastavuji, jak chci, ne a ne to fungovat.. Děkuji.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

22.12.2010 01:27 chrono
Rozbalit Rozbalit vše Re: Nastavení proměnné
Odpovědět | | Sbalit | Link | Blokovat | Admin
Čo presne na tom nefunguje? Môžeš vyskúšať niečo ako:
#!/bin/bash

echo ${parametr:-value}
parametr="ABCD"
echo ${parametr:-value}
(prvé echo by malo vypísať "value" pretože premenná parametr nie je nastavená, druhé by malo vypísať "ABCD")
22.12.2010 09:28 IceCoffee
Rozbalit Rozbalit vše Re: Nastavení proměnné
Asi jsem blbá. Ať tu proměnnou nastavuju, jak chci, stejně mi to háže "command not found". Ale stejně ti moc děkuji za radu.

Tady mám kdyžtak ten konkrétní příklad.. doufám, že alespoň to, co tam mám, je správně..
prom="$(whoami)"
nazev=$1
${nazev:-dir$prom.list}
ls -t > $nazev.txt
22.12.2010 09:56 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Nastavení proměnné
Ta konstrukce ${…} vrací výslednou hodnotu, takže v tomhle případě se bash pokouší výsledek spustit jako program. Správně to má být takhle:
prom="$(whoami)"
nazev=$1
ls -t > ${nazev:-dir$prom.list}.txt
22.12.2010 10:28 IceCoffee
Rozbalit Rozbalit vše Re: Nastavení proměnné
Ježiš, děkuju moc!
22.12.2010 11:06 l4m4
Rozbalit Rozbalit vše Re: Nastavení proměnné
Existuje i konstrukce ${parameter:=hodnota}, která v případě nenastaveného/prázdného parametr tu defaultní hodnotu i rovnou přiřadí, takže v dalších použitích stačí $parametr. Ale pořád je samozřejmě výsledkem expanse ta hodnota, přiřazení je vedlejší efekt.

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.