Páginas

2008/02/10

Bash programazioa-III-

BASH -arekin hasten
Komandoak fitxategietan bildu ahal dira geroago denak batera exekutazteko. Komandoez osatutako fitxategiek script hartzen dute izen. Beraz, script bat sortzeko textu editorea ( vi, nano, gedit,...) baino ez dugu behar . Geroago horren inguruan oharrak emango dira, momentuz lehengo programatxoa egiteko segi hurrengo urrats hauek:

  • Ireki terminala
  • Exekutatu gedit kaixo.sh : honekin gedit editorea abiatu eta kaixo.sh fitxategia sortuko du.
  • Idatzi agertzen diren moduan hurrengo lerro hauek:( zenbakiak kenduta)
  1. #!/bin/bash
  2. # hau da nire lehenengo script-a
  3. echo Kaixo guztioi
  • Gorde fitxategia eta itxi gedit programa .
  • script-a egikaritzeko , idatzi bash kaixo.sh
Azalpenak:
  • script-a kaixo.sh izendatu dugu, hau da .sh luzapena jarri diogu; hori ez da beharrezkoa, Linux munduan fitxategiek ez dute luzapenik baino, argitasuna dela eta, komenigarria da eta horrela bereizten dira .
  • script-aren lerroei dagokienean: #! : horrekin bash shell non dagoen adierazten dugu ( horrek balio du beste interpretatzaileekin ere , hau da #!/usr/sbin/php adierazi balitz php scripta izango zela) ; # : horrekin lerro bakarreko komentarioak hasten dira ; echo : komando bat da, eta atzean datorrena bistarako du; komandoak lerro batean idazten dira ( \ "slash" horrekin komandoa bi , (edo gehiago) lerrotan idatz daiteke ); lerro batean komando bat baino gehiago idatz daitezke , horretarako "," (koma) erabiltzen da komandoak bereizteko
  • Egikaritzeko bash hello.sh idazten dugu; horrekin zer adierazten da? bash programari deia egiten diogu hello.sh script-a exekuta dezan; beste era batean esanda, bash exekutatzen dugu hello.sh argumentua pasatuz
  • Zer pasatuko litzateke komando lerroan hello.sh idatzi bagenu? . Erantzuna--> bash:hello.sh : komadoa not found izango zela , hau da bash shell-ak ez du hello.sh komandoa aurkitu, edo beste era batez esanda hello.sh ez da exekutagarria; ordea, dena dela exekutatzen badugu ls -al , ez digu akatsik emango hello.sh fitxategia hor baitago.Zergatik lehenengo erantzuna? Exekutagarriak diren "fitxategiak" dituzten katalogoak , PATH inguru alagaiak kontrolatzen du. Ondorioa: gure script-ak zuzenean egikarigarraik izateko nahi badugu PATH aldagain egindako script-eko karpetaren bideak egon behar du
  • Egin dezagun beste proba bat. Idatzi ./hello.sh . Gogora ezazu . dela uneko katalogoaren izena, beraz ./hello.sh , fitxategia ,zehatz mehatz, non dagoen eesaten diogu bash-i . Horren emaitza izango zen : bash: ./hello.sh: Permission denied .Orain ez digu esaten ez dela fitxategia aurkitzen ( guk espreseki adierazten baitiogu), baizik eta exekutatzeko baimenik ez daukagula.
  • Beraz, aurrekoa kontuan harturik script-a exekutagarri bihurtu behar dugu. Nola? , baimenak aldatuz. Gogora ezazu fitxategiek baimen bereziak dituztela .Era ezberdinetan alda daitezke baimenak. Ikus ditzagun : sudo chmod 750 kaixo.sh edo sudo chmod u=rwx,g=rw kaixo.sh. ( aldatzeko root izan behar dugu, horregatik sudo hori )
  • Baimenak aldatu ondoren , gure lehenengo script-a egikaritu ahal dugu idazten ./kaixo.sh
  • bash shell-ak bilatu behar dituen fitxategiak inguru-aldagai batean jasotzen dira.PATH da aldagai hori ( letra larriaz!!!!) . Ordenagailuan daukagun aldagai horren balioa jakiteko idatzi komando-lerroan echo $PATH .Zuk aldatu ez baduzu, ohikoena da /bin : /usr/bin izatea, hau da komandoak /bin karpetan edo /usr/bin beste horretan aurkituko dira. Horregatik, komando-lerroan kaixo.sh idazti dugunean ez duela fitxategia aurkitzen erantzun digu. Baina PATH -aren balioa alda dezakegu, horretarako idatzi PATH=$PATH:. ; hau da balio berria izango da: zaharrena -$PATH- , gehi laneko katalogoa , puntuz (.) adierazten dena, horretan script-a gordeta baitago. Kontuz, berdin ikurraren (=) aurrean eta atzean ez dagoela hutsunik egon behar; bestalde : ( bi puntu) PATH balioak bereizteko erabiltzen dira.
  • PATH ez badugu aldatu nahi , script-a /bin edo /usr/bin karpetatik batean gorde, hori arrikutsua bada ere. Hobe izango litzateke gure script-etarako katalogo bat /usr/bin katalogoan sortzea, ondoren gehitu PATH aldagaian!!!.
  • Gertatzen dena da, PATH aldagaiaren balio berria desagertuko dela ordenagailu amatatu ondoren; behin betikoan jartzeko ikasiko dugu beste momentu batean


No hay comentarios: