Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: kingpin 17 Dubna 2009, 09:59:41

Název: Bash - automaticka tvorba .gz archivu
Přispěvatel: kingpin 17 Dubna 2009, 09:59:41
Ahojte,
Prave zaciname tvorbu skriptu v Bash-i a chtel bych vytvorit skript kterej by mi sam vytvarel archivy tar.gz. Zatim jsme toho moc neprebrali ale preci jenom ... :)
Skript jako tak funguje ale chtel bych to malinko vychytat... pokud zadam spravnou cestu k adresaru tak to udela ale sekne se na vypise ze se mu to povedlo.
1.) Jde mi o to ze bych chtel po zjisteni navratove hodnoty $? == 1 aby vypsalo, ze se to povedlo a jinac vypsalo, ze ne.
2.) Bylo by fajn kdyby to bralo i cestu aktualniho adresaru a ne jen /home/user/...
// 3.) Jo a ted mne jeste napadlo jestli by se tam nedalo jeste naimplementovat kam se ma ten archiv vytvorit

Za vase napady budu vdecnej a necemu se zase priucim... I kdyz by se vam nechtelo vysvetlovat jak to funguje tak to si dovedu dohledat :)


Kód: [Vybrat]
#!/bin/sh

#tvorba tar.gz archivu

echo "Zadej cestu k adresaru: "
read adresar
echo -n "Zadej nazev vystupu: "
read nazov
tar -czvf $nazev".tar.gz" $adresar
 if [ "$?" == 0 ]
 then echo "Zadali jste nespravnou cestu. Nastala chyba"
 
 elif [ "$?" == 1 ]
  then
  echo "Vas archiv $nazov:".tar.gz" byl vytvoren a je ulozen v adresari $adresar"
Název: Re: Bash - automaticka tvorba .gz archivu
Přispěvatel: premet 17 Dubna 2009, 10:36:44
1) Myslíš něco jako 
Kód: [Vybrat]
if [ "$?" == 0 ]; then
   echo "Vas archiv $nazov:".tar.gz" byl vytvoren a je ulozen v adresari $adresar"
else
   echo "Zadali jste nespravnou cestu. Nastala chyba"
Mimochodem   $?, když vyjde 0 tak je to úspěch.
3) man tar  ;)
Název: Re: Bash - automaticka tvorba .gz archivu
Přispěvatel: nettezzaumana 17 Dubna 2009, 10:39:24
1) Myslíš něco jako 
Kód: [Vybrat]
if [ "$?" == 0 ]; then
   echo "Vas archiv $nazov:".tar.gz" byl vytvoren a je ulozen v adresari $adresar"
else
   echo "Zadali jste nespravnou cestu. Nastala chyba"
Mimochodem   $?, když vyjde 0 tak je to úspěch.
3) man tar  ;)
.. omg .. `man bash` !!

a prectete si zejmena sekci operators !! mozna je to man test ..
Název: Re: Bash - automaticka tvorba .gz archivu
Přispěvatel: premet 17 Dubna 2009, 10:39:49
Tak se koukám, bude dělat ten skript i něco jinýho než jen vytváření archívů, protože tohle celý můžeš dělat přímo příkazem tar - volby ....
Název: Re: Bash - automaticka tvorba .gz archivu
Přispěvatel: premet 17 Dubna 2009, 10:40:37
1) Myslíš něco jako 
Kód: [Vybrat]
if [ "$?" == 0 ]; then
   echo "Vas archiv $nazov:".tar.gz" byl vytvoren a je ulozen v adresari $adresar"
else
   echo "Zadali jste nespravnou cestu. Nastala chyba"
Mimochodem   $?, když vyjde 0 tak je to úspěch.
3) man tar  ;)
.. omg .. `man bash` !!

a prectete si zejmena sekci operators !! mozna je to man test ..
Jo sorry, to jsem si vůbec neuvědomil  ;D
if [ "$?" -eq 0 ] by mělo být správně a ješte fi na konec, no jo ted sem vstával  ;D
Název: Re: Bash - automaticka tvorba .gz archivu
Přispěvatel: nettezzaumana 17 Dubna 2009, 10:42:56
no, spravne nespravne, je jedno jestli to porovnas jako cisla (-eq) a nebo jako retezec (=),  ale "==" je rozhodne blbost v bashi ;)
Název: Re: Bash - automaticka tvorba .gz archivu
Přispěvatel: premet 17 Dubna 2009, 10:43:35
no, spravne nespravne, je jedno jestli to porovnas jako cisla (-eq) a nebo jako retezec (=),  ale "==" je rozhodne blbost v bashi ;)
No to mám zase naučený z Cčka no  :D
Název: Re: Bash - automaticka tvorba .gz archivu
Přispěvatel: nettezzaumana 17 Dubna 2009, 10:45:03
no, spravne nespravne, je jedno jestli to porovnas jako cisla (-eq) a nebo jako retezec (=),  ale "==" je rozhodne blbost v bashi ;)
No to mám zase naučený z Cčka no  :D
.. hm. v cecku vas uci sr4t dohromady ruzne jazyky a jejich operatory .. zajimave .. ;)
Název: Re: Bash - automaticka tvorba .gz archivu
Přispěvatel: nettezzaumana 17 Dubna 2009, 10:46:16
radsi kdyby jste mi odpovedeli na tohle :: http://forum.ubuntu.cz/index.php/topic,34365.0.html
Název: Re: Bash - automaticka tvorba .gz archivu
Přispěvatel: premet 17 Dubna 2009, 10:47:48
no, spravne nespravne, je jedno jestli to porovnas jako cisla (-eq) a nebo jako retezec (=),  ale "==" je rozhodne blbost v bashi ;)
No to mám zase naučený z Cčka no  :D
.. hm. v cecku vas uci sr4t dohromady ruzne jazyky a jejich operatory .. zajimave .. ;)
Ne tak jsem to nemyslel, jen asi jak sem to psal rychle tak se mi vybavilo tohle, ve škole nás učí Cčko pomalým tempem takže jsem spíš samouk a mezi jiný jazyky tam zatím patří jen Scheme a Lisp což se fakt poplíst nedá.
Název: Re: Bash - automaticka tvorba .gz archivu
Přispěvatel: kingpin 17 Dubna 2009, 10:59:58
jo takze to s tim == jsem si pak uvedomil a opravil si to na -eq ale nemel jsem cas to tady opravit... jeste se ted ucim CCNA1 takze se omlouvam. A navyse skriptuju pouze 2 dny  ;D

jo ta navratova hodnota pro $? je teda:
0 - dobre
1 - nedobre

nettezzaumana > jo jo tak jsme to myslel  :)
na ten 'man bash' si budu muset nekdy poobede sednout a prolouskat to

jenom mne na tom mym skriptu *ere ze do archivu me to bali celou cestu jak mu ji zadam a ne pouze posledni adresar ze zadane cesty. Nemuze to byt tim ze na konec cesty vzdy dopisu / ?
Název: Re: Bash - automaticka tvorba .gz archivu
Přispěvatel: nettezzaumana 17 Dubna 2009, 11:12:25
nicmene premet ma pravdu .. nac psat script kterej akorat neco zataruju kdyz muzes udelat

tar czfv /foo.tar.gz /foo
Název: Re: Bash - automaticka tvorba .gz archivu
Přispěvatel: kingpin 17 Dubna 2009, 12:01:18
Protoze na ten skript muzu napriklad pozdeji kdeco nalepit. A navyse se ucim skiptovat takze to jsou jenom takovy priklady ktere mi pomuzou se do toho dostat. Jde jen o to psat a psat a psat ...a hlavne tomu rozumet  ;) Linux mam taky jenom 3. tejden tak se snazim co nejvice vymackat ze sebe.
Název: Re: Bash - automaticka tvorba .gz archivu
Přispěvatel: nettezzaumana 17 Dubna 2009, 12:04:38
Protoze na ten skript muzu napriklad pozdeji kdeco nalepit. A navyse se ucim skiptovat takze to jsou jenom takovy priklady ktere mi pomuzou se do toho dostat. Jde jen o to psat a psat a psat ...a hlavne tomu rozumet  ;) Linux mam taky jenom 3. tejden tak se snazim co nejvice vymackat ze sebe.
.. bezva ;)

takze `man bash`
http://docs.linux.cz/programming/interpreted/bashdoc-1.4/
http://tldp.org/LDP/abs/html/
Název: Re: Bash - automaticka tvorba .gz archivu
Přispěvatel: kingpin 17 Dubna 2009, 12:11:30
Jo a vsem vam moc dekuji za pomoc a odkazy  :)