Cara nggunakake fungsi ing Bash nggunakake basa komputer adhedhasar PixIX sing adhedhasar shell, Unix. Minangka basa, fungsine kalebu interpretasi prentah Linux, saengga bisa ngotomatisasi proses sing bola-bali lan uga nggawe perintah saka perintah sistem operasi. Ing artikel iki, kita bakal mriksa cara nggunakake fungsi ing bash. Aku nyaranake maca artikel kepiye nggawe skrip sampeyan dhewe nggunakake bash.
Ing skrip sing disaranake, kita nggunakake basa Bash kanggo nggoleki file, ngerti jenenge. Kanggo iki, kita bakal nggunakake golek prentah nanging kanthi pitulung fungsi sing sadurunge ditemtokake ing skrip kasebut. Sampeyan kudu nyathet keanehan utawa watesan Bash sing ora ana ing kabeh basa: kanggo nelpon fungsi kudu ditetepake sadurunge.
Netepake fungsi
Ana rong cara kanggo netepake fungsi: nganggo utawa tanpa deklarasi fungsi:
function nombre_funcion () { # codigo }
utawa sing liyane iki, sing siji sing digunakake kaya sing bakal dakdeleng mengko.
nombre_funcion () { # codigo }
Uga Bash uga nyedhiyakake cara kanggo ngliwati parameter lan ngasilake asil. sing bakal kita waca ing artikel mbesuk.
#!/usr/bin/env bash # ~/.bin/encontrar # encuentra archivos a partir de la descripción de su nombre en un directorio específico # # Por Pedro Ruiz Hidalgo # version 1.0.0 # Copyright © enero 2017 # # EXIT_OK=0 EXIT_BAD=66 PATRON=$1 DIRECTORIO=$2 autor () { echo -e "\nPedro Ruiz Hidalgo @petrorum. Copyright © 2017\n" } ayuda () { echo -e "\nencontrar [PATRON] [DIRECTORIO]\n" } noparams () { echo -e "\nSon necesarios dos parámetros\nencontrar -h para ayuda\n" read -p "¿Quieres ver la ayuda? (S|s)" -n 1 -r if [[ $REPLY =~ ^[Ss]$ ]]; then echo "" ayuda fi } nodir () { echo -e "\nDirectorio no Existe\n" } if [[ $PATRON == "-h" ]]; then ayuda exit $EXIT_OK fi if [[ $PATRON == "-a" ]]; then autor exit $EXIT_OK fi if [ $# -lt 2 ]; then noparams else if [ -d $DIRECTORIO ]; then echo "" find $DIRECTORIO -name $PATRON* echo "" exit $? else nodir exit EXIT_BAD fi fi
Analisis skrip
Definisi
Kanggo bash saben proses rampung kanthi sukses kudu nduwe kode "0" minangka sinyal. Baris 12 lan 13 nemtokake kode kesalahan sing ditangani EXIT_OK sukses y EXIT_BAD gagal metu.
Ing baris 15 lan 16, variabel PATTERN lan DIREKTORI diwenehi paramèter pisanan ($ 1) lan kaloro ($ 2) sing ditampilake ing baris perintah sawise jeneng skrip, kaya sing bakal dideleng mengko nalika nglakokake.
Ing baris 18 kita nggawe fungsi pertama. Fungsi sing diarani «panulis» nampilake panulis skrip nalika kita nelpon kanthi argumen "-a" kaya sing sampeyan deleng ing garis 50 ~ 54. Bantahan "-lan" saka baris 23 ngidini nuduhake urutan «baris sabanjure» kanthi enkoding «\ n».
Telpon kanggo noparams (baris 28 ~ 37) tanggung jawab ngatur acara sing kudu kedadeyan nalika skrip diarani tanpa paramèter. Kita nuduhake, kanthi tertutup ing antarane kode baris anyar, pesen sing nuduhake skrip kasebut kudu dieksekusi nganggo rong paramèter, mula ana pilihan (baris 31) ditampilake maca Sampeyan dijaluk sampeyan menet "S" utawa "s" yen sampeyan pengin nuduhake pitulung. Ing baris 32, kita secara harfiah ujar: 'yen wangsulan (sing bisa ditemokake ing variabel $ REPLY) ngemot karakter sing huruf gedhe utawa huruf cilik ', banjur (baris 33) nuduhake garis kosong (baris 34) lan nglakokake fungsi pitulung (baris 23 ~ 26).
Fungsi nodir (baris 39 ~ 42) bakal dileksanakake nalika ndeteksi direktori sing nyoba ditelusuri ora ana.
Fungsi
Kanthi iki kita wis duwe ditetepake kabeh fungsi sing perlu kanggo mbukak program kita, sing sejatine diwiwiti ing baris 44, mriksa paramèter pisanan sing ditampa skrip yaiku "-h", yen bener, jalanake fungsi pitulung lan metu sing nuduhake mandap normal.
Yen PATTERN (paramèter pisanan kaya sing dijelasake ing baris 15) yaiku "-a", panganggit ditampilake sawise mekanisme sing padha diterangake ing paragraf sadurunge kanggo opsi "-h".
Ing baris 56 dikontrol manawa kurang saka rong paramèter wis tekan kitaIng kasus iki, fungsi noparams dieksekusi, mula, yen ana garis 60 sing ditemokake yen ana direktori sing pengin digoleki, yen ana, baris kosong ditampilake, ing golek prentah kanthi alamat direktori sing pengin ditindakake telusuran banjur pola (wiwitan jeneng file sing digoleki) baris kosong anyar lan kanthi metu $? kita masrahake output skrip kanggo asil sing digawe kanthi nemokake. Yen ana kahanan orane direktori salah (baris 67) kita nelpon fungsi nodir lan kita metu nuduhake mandap ora normal.
Eksekusi lan pengujian
$ encontrar $ encontrar -a $ encontrar -h $ encontrar index aljflaskjf #directorio no existe $ encontrar index public_html $
En artikel ing ngisor iki babagan Bash kita bakal ndeleng mekanisme kanggo nggunakake paramèter ing fungsiKita uga bakal weruh kepiye nyathet data bali saka padha.
Muga-muga postingan iki migunani kanggo sampeyan.
Komentar, ninggalake sampeyan
hello,
menarik banget lan jelas banget.
Mung cathetan; a $ ilang ing baris 68 ing ngarepe variabel EXIT_BAD.
Aku bakal terus sinau kanthi pasti nganggo artikel sampeyan.