Přihlásit
: [1]
   |   
: ladeni skriptu globalne  ( 2673 )
Ged
Full Member
***

Karma: 3
: 215


17002977
« : March 31, 2009, 10:08:52 »

Experimentuji z bashem a v pripade skriptu bych rad vedel co vlastne provedou.

mam jednoduchy skript ladeni.sh:

:
#!/bin/bash

mkdir asdfgh

Cilem bylo aby se vypsalo jen to co se bude provadet.

Zkusil jsem prikaz:
:
$bash -x ladeni.sh

Vysledek byl ovsem jiny nez jsem ocekaval.

:
bash-3.2$ bash -x ladeni.sh
+ mkdir asdfgh
Navic se adresar vytvoril.

Jde nejak prepinacem bez zasahu do vlastniho skriptu dosahnout toho aby se dane prikazy vypsali a neprovedli?

Dekuji za odpoved.

Jednou jsem ho videl na vanoce

Gold "3-Ethyl-1,2,2-trimethyl-bicyclo[2.1.0]pentane"

jabber: uranit@jabbim.cz
Peťoš
Global Moderator
Hero Member
*****

Karma: 188
: 6 712



« #1 : March 31, 2009, 14:38:01 »

chces-li neco vypsat, pouzij echo
:
   #!/bin/bash

echo "mkdir blablabla"

Pokud neco vkladas co CODE tagů, tak dej na zacatek nejake mezery, neni videt zacatek scriptu. A nemusis to spoustet tak slozite, staci pridat prava na spusteni a pak spoustet
$  ./ladeni.sh
popr
$ bash ladeni.sh

Doporucuji zacit studiem uz hotovych scriptu. Nabizim svou malou knihovnicku :-) Popsano na mem blogu:
http://vzducholode.blogspot.com pod labelem scripts

chces-li vypsat obsah souboru, pouzij $ cat soubor

Do it or do not. There is no "try".

Peťošův repozitář je na adrese: http://petos.cz/rpms
Fotoblog: http://vzducholode.blogspot.com a http://petos.cz/category/fotky
Ged
Full Member
***

Karma: 3
: 215


17002977
« #2 : March 31, 2009, 15:06:14 »

Tak je to trochu komplikovanejsi nez jsem uvedl. Ty nesmyslne prikazy jsou tam proto aby to vyhodilo nejake chyby.

Porad mi neni jasne proc se nasledujici skript ladeni.sh:

:
#!/bin/bash


sssssss
dfgfgfgf
gfdggf
dgdgd
gdgdf

echo ahoj
rm -rf 1*

Vypis adresare kde se spousti skript:
:
bash-3.2$ ls
erwerew  ladeni.sh  ladeni.sh~  1fgrthghjgjg  1fsfsfsf  1oljvvxdss
 

Poskytne:

1.
:
bash-3.2$ bash -n ladeni.sh
bash-3.2$

Mel by prece vypsat nejake chyby (neexistujici sssss .....)?

2.
:
bash-3.2$ bash -nx ladeni.sh
bash-3.2$
By mel ukazat ahoj+ nejake chyby?

Predpokladal jsem, ze to pujde jednoduse nejakym prepinacem, ktery zapricini stejny vypis jako by vypisoval ten skript, ale fyzicky by nemanipuloval se zdrojovymi daty. Nejak jak jsem zil porad v presvedceni, ze obdobne jako u rm existuje pro bash fce, ktera by tento ochrany  (proti me blbosti) mechanizmus umoznovala.

Tj skript spusteny "naostro":
 
:
bash-3.2$ bash ladeni.sh
ladeni.sh: line 4: sssssss: command not found
ladeni.sh: line 5: dfgfgfgf: command not found
ladeni.sh: line 6: gfdggf: command not found
ladeni.sh: line 7: dgdgd: command not found
ladeni.sh: line 8: gdgdf: command not found
ahoj
 

Slo by to nejak takhle bez echo?

Na skripty se urcite podivam. Dekuji

Jednou jsem ho videl na vanoce

Gold "3-Ethyl-1,2,2-trimethyl-bicyclo[2.1.0]pentane"

jabber: uranit@jabbim.cz
Peťoš
Global Moderator
Hero Member
*****

Karma: 188
: 6 712



« #3 : March 31, 2009, 15:23:04 »

O zadnem takovem prepinaci nevim, ale BASH jich ma tolik moznych...
Delal bych neco jako test na soubor v if. Pokud neexistuje, pak echo ERRno a exit:


if [ -e SOUBOR] then
        funkce()
else
        echo "soubor SOUBOR neexistuje"
        exit
fi

pricemz funkce() je funkce napsana v bashi. Ja to teda nepouzivam, ale v tomto pripade by to bylo proste
funkce() {
.....
}
Pripadne pomoci vykricniku to negovat a vymenit pak funkce() s echo&&exit

Do it or do not. There is no "try".

Peťošův repozitář je na adrese: http://petos.cz/rpms
Fotoblog: http://vzducholode.blogspot.com a http://petos.cz/category/fotky
: [1]
   |   
 
: