Portál AbcLinuxu, 10. května 2025 02:24

Dotaz: vkladanie premennej

8.1.2008 09:47 Miro | skóre: 5 | Zlaté Moravce
vkladanie premennej
Přečteno: 260×
Odpovědět | Admin
Ahoj pomohol by mi niekto s týmto (som laik)len sa učím no v staroffice basicu som už niečo potvoril a teraz by som sa chcel venovať bash. Ten script:

#!/bin/sh

export rok=`Xdialog --inputbox "Zadaj rok" 0 0`

echo "$rok"

export year=$rok

vypis=`Xdialog --msgbox "zadal si $year" 10 40`

echo "Zisťuje sa existencia adresárov v systéme"

for x in /media/hda5/lugesa/archiv/lugesa_$year/; do

if [ -d "$x" ]; then

# echo "Adresár $x existuje"

vypis=`Xdialog --msgbox "adresár $x existuje" 10 40`

else

# echo "Adresár $x neexistuje"

vypis=`Xdialog --msgbox "adresár $x nexistuje a bude vytvorený nový" 10 40`

mkdir /media/hda5/lugesa/archiv/lugesa_$year/

fi

done

prvý problém mám v tom že premenná rok po vložení do Xboxu mi ďalej neexistuje takže už ani echo mi ju nevypíše ako ju mám predať ďalej alebo zafixovať kým script bude bežať? dík miro
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

8.1.2008 10:31 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: vkladanie premennej
Odpovědět | | Sbalit | Link | Blokovat | Admin
Oni se ty data neztracej, on je Xdialog tem promennym vubec nepredava, zkus pridat ke vsem Xdialogum prepinac
--stdout 
. IMHO export neni nutny... :-D
Intel meltdown a = arr[x[0]&1]; karma | 帮帮我,我被锁在中国房
8.1.2008 11:39 Miro | skóre: 5 | Zlaté Moravce
Rozbalit Rozbalit vše Re: vkladanie premennej
Ďakujem ide to v starofficebasicu som bol zvyknutý na trochu iný postup s premennými. vyzerá to asi takto:

#!/bin/sh

rok=`Xdialog --stdout --inputbox "Zadaj rok" 0 0`

echo "$rok"

export year=$rok

vypis=`Xdialog --msgbox "zadal si $year" 10 40`

echo "Zisťuje sa existencia adresárov v systéme"

for x in /media/hda5/lugesa/archiv/lugesa_$year/; do

if [ -d "$x" ]; then

# echo "Adresár $x existuje"

vypis=`Xdialog --msgbox "adresár $x existuje" 10 40`

else

# echo "Adresár $x neexistuje"

vypis=`Xdialog --msgbox "adresár $x nexistuje a bude vytvorený nový" 10 40`

mkdir /media/hda5/lugesa/archiv/lugesa_$year/

fi

done

Ešte by som mal ďalšiu otázočku ako sa dostanem späť pred "for" to znamená že adresár ktorý nebol sa vytvorí a potrebujem znovu overiť atd... proste ak ten adresár už existuje samozrejme zadám za "then" ďalšie príkazy potrebujem niečo ako do - loop alebo návesť na ktorú sa vráti dík miro
8.1.2008 12:07 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: vkladanie premennej
No mozna by to slo udelat vnorenymi cykly neco jako
 
for x in /media/hda5/lugesa/archiv/lugesa_$year/; do
while adresar stale neexistuje ; do
...kod...
done
done
Ale asi se tomu nebudou libit ruzne stavy jako treba zapis na readonly -> zacykleni.
8.1.2008 12:20 Miro | skóre: 5 | Zlaté Moravce
Rozbalit Rozbalit vše Re: vkladanie premennej
medzitym ako som si prečítal odpoveď trochu som sa s tým hral a napisal som tam toto:

#!/bin/sh

rok=`Xdialog --stdout --inputbox "Zadaj rok" 0 0`

echo "$rok"

export year=$rok

vypis=`Xdialog --msgbox "zadal si $year" 10 40`

echo "Zisťuje sa existencia adresárov v systéme"

y=0; # inicializuje hodnotu y na 0

while [ "$y" -le 1 ]; do

for x in /media/hda5/lugesa/archiv/lugesa_$year/; do

if [ -d "$x" ]; then

echo "Adresár $x existuje"

exit

else

echo "Adresár $x neexistuje"

mkdir /media/hda5/lugesa/archiv/lugesa_$year/

fi done

echo "Aktuálna hodnota y: $y"

# zvýšenie hodnoty y o 1

y=$(expr $y + 1)

sleep 1

done

a už to ide ako som chcel samozrejme tie echá vymažem nepoznám shell ešte dobre- naozaj vrelá vďaka. miro

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.