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
-
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 :)
#!/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"
-
1) Myslíš něco jako
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 ;)
-
1) Myslíš něco jako 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 ..
-
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 ....
-
1) Myslíš něco jako 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
-
no, spravne nespravne, je jedno jestli to porovnas jako cisla (-eq) a nebo jako retezec (=), ale "==" je rozhodne blbost v bashi ;)
-
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
-
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 .. ;)
-
radsi kdyby jste mi odpovedeli na tohle :: http://forum.ubuntu.cz/index.php/topic,34365.0.html
-
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á.
-
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 / ?
-
nicmene premet ma pravdu .. nac psat script kterej akorat neco zataruju kdyz muzes udelat
tar czfv /foo.tar.gz /foo
-
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.
-
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/
-
Jo a vsem vam moc dekuji za pomoc a odkazy :)