Páginas

2008/04/02

Komandoen ordezkapena

Erabili ahal dugu komando baten emaitza aldagai baten balioa balitz bezala. Ikusi zenbait adibide:
  • nireDir=$(ls $HOME) ; nireDir aldagaia definitzen da eta ls $HOME komandoaren emaitza baliotzat esleituko zaio. Konprobatzeko egikaritu jarraian hurrengo hau : echo $nireDir
  • ls -al $(type -path bash) ; $(type -path bash) komandoaren emaitza ls komandoari pasatzen zaio
  • Azter dezagun hurrengo script hau:
#!/bin/bash
# data zehatz batean - $1 - uneko katalogan aldatu diren fitxategien izenak
# ematen digu script honek. Scriptaren izena datafitxategiak.sh
function dataBatenFitxategiak{
ls -lad * | grep "$1" | cut -c54-
}
ls -lad $(dataBatenFitxategiak "$1")
# scriptaren amaiera ; gorde goiko izenarekin

Egikaritzeko , idatzi datafitxategiak.sh "12 Jan" , horrekin Urtarrilak, 12 aldatu diren fitxategien izenak ( bakarrik; cut -c54- komandoa exekutatzen delako ) agertuko zaizkigu




Irudiak: . bmp --> .jpg

GNU munduan, irudiak formatu ezberdinetan adierazteko tresna multzo bat badago NetPBM paketean , zein helbide honetan aurki daitezkeen. Hemendik tarball jaitsi eta instalatzeko aginduak leku horretan bertan daude . Paketea instalatu ondoren gure helburua honako hau izango da: script bat sortzea irudiei formatuak aldatzeko.

#!/bin/bash
# scriptaren izena bmpTojpg
echo Idatzi bihurtu nahi duzun irudiaren izena
sarrera_irudia=${1:?'Leheengo argumentua ez didazu eman'}
tarteko_irudia=${sarrera_irudia%.bmp} .ppm
irteera_irudia=${2.?-${tarteko_irudia%.ppm} .jpg}
# NetPBM paketetik bmptoppm eta ppmtojpeg komandoak erabiliko dira
bmptoppm $sarrera_irudia > $tarteko_irudia
ppmtojpeg $tarteko_irudia > $irteera_irudia

Gorde textu-fitxategi hori bmpTojpg izenarekin , exekutatzeko baimenak eman eta egikaritu konprobatzeko.


Script horretan kateen eragileak erabili dira , ondorengo post honetan edo beste honetan azalten den moduan

Karaktere kateen eragileak -II-

Patroi bilatzeko eragileak, hau da karaktere string batean "patroi" bat bilatu . Ikus dezagun hurrengo adibide hau: bidea = /usr/local/share/qemu/bios.core.bin. Kate horretan hurrengo eragileak aplikatzen zaizkie.
Eragilea------------------------------ Emaitza
${bidea##/*/}------------------------bios.core.bin
${bidea#/*/}--------------------------local/share/qemu/bios.core.bin
${bidea%.*} ---------------------------
/usr/local/share/qemu/bios.core
${bidea%%.*}
-------------------------/usr/local/share/qemu/bios
Ikusten denez, # eta % ikurrek , kateetan zenbait ariketa egiteko balio dute :
${aldagaia##patroi} --> aldagairen balioan adierazitako "patroia" , ezkerretik hasita , aurkitzen bada baliotik zatirik luzeena ezabatzen du eta geratzen dena ematen digu; horregatik
${bidea##/*/}-expresio horretan patroia /edozer / da eta /usr.............qemu/ zati hori kenduta bios.core.bin katea da emaitza
Bigarren kasuan,
${bidea#/*/}--, patroia bera da - /*/ - baina emaitza guztiz kontakoa da, esatebaterako, zatirik txikiena kendu eta geratzen dena izango da emaitza, hua da bakarrik /usr/ # eragileak .
Besteak, % eta %% , antzekoak dira baina eskumatik hasten da alderatzen patroia.