Näited skriptide loomisest Bashi valikumenüüdega

Viimane uuendus: 28/01/2026
Autor: Isaac
  • Bashi menüüd luuakse selliste struktuuride nagu read, case ja select kombineerimise teel, mis võimaldab teil valida toiminguid neid meeles pidamata. käsud keeruline.
  • Koodi korraldamine sõltumatuteks funktsioonideks (loomine, valideerimine, kustutamine, loetlemine) lihtsustab skriptide haldamist ja laiendamist interaktiivsete menüüde abil.
  • Tööriistad nagu dialoog lisavad täiustatud tekstiliideseid kastide ja kursorinavigatsiooniga, mis sobib ideaalselt visuaalsemate menüüde loomiseks terminal.
  • Integratsioon croniga ja heade silumispraktikate abil muudavad need menüüd Linuxi ülesannete automatiseerimiseks ja juhtimiseks töökindlaks lahenduseks.

Menüüd Bashi skriptides

Kui töötad iga päev GNU/Linuxiga, siis varem või hiljem mõtled, kuidas automatiseerida korduvaid ülesandeid, kaotamata kontrolli selle üle, mida täidetakse. Siin tulevadki mängu Bash-skriptid valikumenüüdega : väikesed terminaliprogrammid, mis küsivad, mida sa teha tahad, ja tegutsevad vastavalt.

Nende menüüde loomine pole kaugeltki ainult konsooligurudele reserveeritud, vaid üsna lihtne. Mõne põhilise Bashi konstruktsiooni – select , case , read , loops ja mõnede lisautiliitidega, näiteks dialog graafiliste menüüde jaoks – saate luua kõike alates lihtsast numbrilisest selektorist kuni interaktiivsete tekstiliidesteni kursori noolte, hüpikakende ja andmete valideerimisega.

Põhimõisted: mis on valikute menüüga Bash-skript?

Bash -skript on lihtsalt tekstifail, mis sisaldab käske , mida interpretaator üksteise järel täidab. Menüü lisamise eeliseks on see, et sama jada käivitamise asemel saab kasutaja valida, millist toimingut igal ajahetkel teha , sisestades numbri, navigeerides nooleklahvidega või valides konkreetse kirje.

Selles kontekstis võib Bashi valikute menüü olla mitmel kujul: klassikalisest nummerdatud loendist kuni lugemine + juhtum...isegi täisekraani dialoogiboksid utiliidi abil Dialoog, märksõna pakutavate automaatsete menüüde kaudu select integreeritud Bashi endasse.

Seda tüüpi skripte kasutatakse näiteks lihtsa rakenduse kasutajate haldamiseks , erinevate kaustade varukoopiate käivitamiseks, süsteemiutiliitide (protsessid, kalender, hostinimi) kuvamiseks või mitmete haldusülesannete koondamiseks konsooli ühtse ja kasutajasõbraliku liidese alla.

Lisaks mugavusele on need menüüd kasulikud ka seetõttu, et need võimaldavad käsurea kasutamise kogemuseta inimestel teha keerukaid toiminguid ilma teid, valikuid või parameetreid meeles pidamata, vähendades vigu ja säästes aega.

Lihtsad menüüd lugemise ja suur- ja väiketähtedega: kõige otsesem lähenemine

Kõige otsesem viis Bashi menüü loomiseks on kuvada nummerdatud loendit valikute hulgast lugege klahvi või numbrit read ja olenevalt kasutaja sisestatust käivitada struktuuri abil üks või teine ​​koodiplokk case ... esac.

Kujutage ette, et teil on varundusskript, mis tihendab neli erinevat kausta, kasutades 7z-d . Ilma menüüta täidaks skript lihtsalt kõik käsud korraga, genereerides iga käivitamisel neli varukoopiafaili, isegi kui soovite värskendada ainult ühte neist.

Lahendus on koondada need käsud ühte skripti ja lisada väike menüü, kust saab valida, millist varundust käivitada . Tavaliselt kasutatav põhimuster on:

1) Määrake varukoopia väljundfailide nimetamiseks vajalikud muutujad, näiteks praegune kuupäev.

2) Kuva valikud mitmega echoNäiteks üks päiserida ja neli rida iga ülesande jaoks: ajutine kaust, Dropbox, Dokumendid ja Android Stuudio.

3) Loe valitud valik klaviatuurilt ette, kasutades read ühe tähe või numbri jäädvustamiseks, mis seejärel salvestatakse muutujasse (näiteks n).

4) Lause kasutamiseks case $n in ... esac et otsustada, millist käsku täita, lähtudes väärtusest: iga haru case sisaldab tellimust 7z mis vastab valitud kaustale, ja defineeritakse ka metamärk-tähte *) jäädvustama sobimatud valikud ja teavitage kasutajat.

Praktiline näide: varundusmenüü Bashis

Kodus või väikekontoris on väga tüüpiline stsenaarium skript, mis käivitab käsitsi varukoopiaid välisele draivile. Nelja eraldi skripti haldamise või kõigi varukoopiate iga kord käivitamise asemel saame loogika koondada ühte interaktiivsesse menüüsse.

Näidisskripti skelett algab tavaliselt shebangi reaga #!/bin/bash, millele järgneb kuupäeva säte:

DATE see saadakse koos date +"%Y-%m-%d"nii et kõik genereeritud failid identifitseeritakse päevade kaupa, mis on ajalooliste koopiate kogumiseks väga praktiline.

Seejärel kuvatakse kasutajale selline plokk (siin illustreerimise eesmärgil): üks rida tekstiga ja neli järgnevat rida nummerdatud 1-st 4-ni, millest igaüks kirjeldab ühte kausta: tmp, dropbox, documents y androidNeed kirjeldused aitavad seda teha On selge, mida toetatakse igal juhul.

Lihtsa read n Valik on jäädvustatud. Sealt edasi a case $n in võimaldab teil iga numbri siduda konkreetse käsuga 7z mis tihendab välise draivi sobiva kausta. Kasutades tahket tihendust koos -mx9 ja parool koos -pContraseña See lisab turvalisust ja tõhusust ning nimetamisskeemi kuupäeva ja kausta järelliitega (näiteks $FECHA-tmp.7z) aitab iga faili hõlpsalt leida.

Selle lähenemisviisi suur eelis on see, et ilma loogikat dubleerimata või mitut faili haldamata võimaldame kasutajal täida ainult ülesandeid, mis sind huvitavadJa kui me ühel päeval tahame lisada uue varukoopiate kausta, peame lihtsalt lisama menüüsse uue valiku ja selle haru kausta case.

Täiustatud menüüd valikuga: Bashi enda funktsioonide ärakasutamine

Bash sisaldab väga mugavat märksõna nummerdatud menüüde automaatseks genereerimiseks: valimaSelle abil ei pea te kõike käsitsi kirjutama. echo valikute kuvamiseks või indeksinumbrite haldamiseks; sellega tegeleb interpreter ise Prindi menüü välja ja jäädvusta valik..

Menüü tüüpiline struktuur koos select See on umbes selline: massiiv defineeritakse erinevate alternatiividega, määratakse spetsiaalne muutuja PS3 käsuviiba tekstiga (näiteks «») ja seejärel avatakse tsükkel select opt in "1" "2" "3" "Quit"; do ... done.

Jooksul do ... done a-d kasutatakse uuesti juhtum $opt in iga massiivi väärtuse sidumiseks kindla toiminguga. Varundamise näites vastavad kirjed "1", "2" ja "3" igale kaustade või varukoopiate komplektile, mida soovime käivitada, ja lisavõimalus, näiteks "Välju", võimaldab menüüst väljumine lihtsaga break.

Suur erinevus võrreldes lähenemisviisiga, kus read on see, et select See prindib automaatselt nummerdatud alternatiivide loendi ja kasutaja peab sisestama ainult valiku numbri. Lisaks Bash haldab muutujat REPLY sisestatud väärtusega, mis hõlbustab valideerimist keerukamate juhtumite korral.

  Seadistage ja kasutage Chromecastis külastajarežiimi

Veidi keerukamates menüüdes select See on eriti kasulik, kuna see vähendab korduva koodi hulka ja muudab skripti tõhusamaks. loetavam ja hooldatavameriti kui valikute nimekiri kasvab aeg.

Struktureeritud menüüde loomine: näide funktsioonidega kasutajahaldusest

Kui menüü juhib tundlikumaid ülesandeid, näiteks kasutajakonto haldamine Sisemises rakenduses on soovitatav skript jagada selgelt eraldatud funktsioonideks. Üks klassikaline näide defineerib vähemalt neli funktsiooni: solicitar_usuario(), validar_usuario(), crear_usuario() y eliminar_usuario()lisaks põhisilmusele, mis kuvab menüüd.

Funktsioon `request_user()` küsib kasutajalt interaktiivselt konto nime ja parooli, tehes topeltkinnituse. Sisemiselt võtab see parameetrina edastatud valikulise sõnumi, et kuvada kontekstist olenevalt (esmakordne registreerimine, topeltkasutaja sisestamine, parooli parandamine jne) erinevat teksti.

Samas funktsioonis kasutatakse seda read -p kasutajanime küsimiseks ja read -sp Parooli puhul peitke sisend terminalis. Seejärel palutakse kasutajal parooli teises muutujas korrata ja kuvatakse reavahetus koos echo "" et vältida viipa eelmise teksti külge kinni jäämist.

Teine võtmeelement on validate_user()mis kontrollib, kas sisestatud nimi on juba olemas. Tavaliselt tugineb see lihttekstifailile (näiteks accesos/cuentaskus iga rea ​​kohta on loetletud üks konto. grep Identifikaatorit otsitakse ja luuakse juhtmuutuja, näiteks validacion, 0-ni või 1-ni, olenevalt sellest, kas vaste on leitud.

See funktsioon tagastab tulemuse, kasutades return, mis võimaldab seda kasutada sellistes tingimustes while validar_usuario "$usuario"; do ... done. Sel viisil loo_kasutaja() saab esile kutsuda solicitar_usuario nii mitu korda kui vaja, kuni nimi on uus ja paroolid ühtivad.

Sees loo_kasutaja()Pärast andmete kogumist luuakse kaks tsüklit: üks, mis kordub seni, kuni konto failis juba olemas on, kuvades näiteks teadet „Valitud kasutaja on juba olemas…”, ja teine, mis kordub, kui parool ei vasta kinnitusele, sundides kasutajat mõlemad väljad uuesti sisestama. Kui valideerimine on läbitud, lisab funktsioon kasutajanime accesos/cuentas koos echo "$usuario" >> accesos/cuentas ja kinnitab ekraanil tekstiga, näiteks "kasutaja loodud".

Funktsioon kustuta_kasutaja() See järgib sarnast filosoofiat, kuid keskendub konto kustutamisele. Esiteks taotleb see nime kustutamist koos read -pja seejärel kasutage tsüklit koos validar_usuario veendumaks, et konto tegelikult eksisteerib. Kui kasutajat ei leita, kuvatakse teade „Kasutajat ei leitud” ja funktsioonist väljutakse. return 1.

Kui konto on kehtiv, kustutatakse see tavalise nipiga: see käivitatakse grep -Ev "$usuario" accesos/cuentas > accesos/cuentas_tmp ajutise faili loomiseks ilma vastava reata ja seejärel selle ümbernimetamiseks mv accesos/cuentas_tmp accesos/cuentasLõpuks teatatakse toimingust teatega, näiteks "kasutaja kustutatud".

Skripti peamine tsükkel: haldusmenüü loomine

Kui abifunktsioonid on defineeritud, siis a Lõputu silmus mis toimib peamenüüna. Tavaliselt on see kirjutatud järgmiselt while true; do ... donenii et skript ei lõpe pärast ühe toimingu sooritamist, vaid naaseb valikute loendisse, kuni kasutaja otsustab väljuda.

Tsükli sees toimub kõne clear Puhastage ekraan korrastatvama keskkonna loomiseks. Seejärel printige echo menüü pealkiri (näiteks „Kasutajate haldus”) ja mitmesugused nummerdatud valikud: kasutaja loomine, kasutaja kustutamine, kasutajate loetlemine ja väljumine.

Valik valitakse a abil. read -sn1 opcionSee loeb ühe märgi ilma kajata (või minimaalse kajaga) ja salvestab selle vastavasse muutujasse. See võimaldab kasutajal lihtsalt vajutada klahvi 1 kuni 4 ilma, et oleks vaja mõnel juhul Enter-klahviga kinnitada, olenevalt klahvikombinatsioonist.

Järgmisena a echo "" järgmisele reale minemiseks ja sisestamiseks juhtumiplokk mis käsitleb iga valikut. Haru "1" käivitab crear_usuario, "2" kutsub eliminar_usuario, "3" kasutab cat accesos/cuentas et kuvada kõiki kasutajaid ja seejärel read -n1 -p "" või sarnane, et enne menüüsse naasmist pausi teha ja "4" käivitab exit 0 skriptist väljumiseks.

Pärast esacTavaliselt lisatakse lühike täiendav paus, näiteks read -n1 -p "Presione cualquier tecla"See hoiab ära ekraani liiga kiire värskendamise, kui toiming lõpeb ilma nähtava interaktsioonita (näiteks pärast kasutaja loomist). See muudab voo tõhusamaks. mugav ja intuitiivne klaviatuuri taga olevale inimesele.

See tsükli + menüü + juhtumi muster on laiendatav peaaegu igale ülesandele: seni, kuni teil on täpselt määratletud toimingute kogum, mida soovite kasutajale esitada, saate need funktsioonidesse pakendada ja sarnase struktuuri abil linkida.

Elegantsemate varundusmenüüde loomiseks kasutage valikut

Varukoopiate näite juurde tagasi tulles, menüü viimistletum variant hõlmab märksõna kasutamist valima käsitsi kombineerimise asemel echo y readSellisel juhul on esimene asi muutuja parandamine PS3 näiteks teatega, mis kuvatakse viibana: PS3="".

Seejärel defineeritakse massiiv, näiteks options=("1" "2" "3" "Quit")ja see on kirjutatud select opt in "${options}"; do ... doneBash kuvab automaatselt nummerdatud menüü nende nelja kirjega ja kasutaja saab valida, sisestades numbri, mis vastab soovitud kirjele.

  Siit saate teada, kuidas parandada draiveri energiaoleku tõrke tõrget Home Windows 10-s

Keha sees select a on rakendatud juhtum $opt in valikute eristamiseks. Harus "1" käivitatakse käsk 7z ajutise kausta varundamiseks, harus "2" Dropboxi varukoopia tegemiseks, harus "3" kausta Dokumendid varundamiseks jne. Kui jõuate valikuni "Välju", kasutage käsku break valiku lõpetamiseks ja sellest tulenevalt menüü kuvamise peatamiseks.

Nagu varemgi, on kaasas haru *) Ettenägematute kirjete korral prinditakse teade, näiteks „Vale valik”, kui kasutaja sisestab väärtuse, mis loendisse ei sobi. See lähenemisviis lihtsustab grupeeri palju hooldustöid ühe skriptiga, ilma et oleks vaja meeles pidada üksikute failide nimesid.

Kuigi kontseptuaalselt ei tee see midagi sellist, mida poleks võimalik teha read + case, select See vähendab koodis visuaalset müra ja haldab automaatselt mõningaid detaile, muutes selle huvitavaks valikuks, kui soovite skripti selge ja kokkuvõtlikuna hoida.

Interaktiivsed menüüd dialoogiga: terminali „kasti” tüüpi liidesed

Kui soovite asja veelgi kaugemale viia, saate kasutada tekstiliidese utiliite, näiteks dialog , mis võimaldavad kuvada menüüsid ääriste, pealkirjade, nuppude ja tekstirežiimi kastidega, sarnaselt vanemate rakendustega nagu ncurses. Need tööriistad sobivad ideaalselt, kui otsite visuaalsemat ja klaviatuurisõbralikumat kogemust.

Dialoogi abil saate Linuxis luua navigeeritavaid menüüsid kursori noolte ja kiirklahvide abil . Tüüpiline näide on skript, mis kuvab pealkirjaga kasti (nt "Utiliidid" või "PÕHIMENÜÜ"), valikute loendi ("Protsessid", "Kalender", "Host", "Välju") ja täiendava abinupu. Kasutaja saab navigeerida nooleklahvide abil, tähtede esiletõstmisega või lihtsalt numbrite 1 kuni 9 vajutamisega.

Selle skriptitüübi üldine mehaanika on järgmine: valitud valiku salvestamiseks defineeritakse ajutine fail (näiteks INPUT=/tmp/menu.sh.$$) ja teine, et jäädvustada tekstikastides kuvatavate käskude väljundit (OUTPUT=/tmp/output.sh.$$), kandes muutuja $$ iga protsessi eristamiseks.

Juhendamise kaudu trap See on konfigureeritud nii, et teatud signaalide, näiteks SIGHUP SIGINT või SIGTERMSkript käivitab puhastusrutiini, mis kustutab need ajutised failid ja väljub korrektselt. See hoiab ära jääkfailide jäämise süsteemi, kui kasutaja katkestab skripti klahvikombinatsiooniga Control+C või kui protsess lõpeb järsult.

Funktsioon nagu näitaVäljundit() See kapseldab dialoogiboksiga teateboksi kuvamise loogika. See kogub parameetreid, näiteks akna kõrgust, laiust ja pealkirja, ning seejärel käivitab funktsiooni. dialog --backtitle "Utilidades" --title "${titulo}" --clear --msgbox "$(cat $OUTPUT)" altura ancho (või samaväärne variant) VÄLJUNDISISU esitamiseks puhtas kastis.

Muud spetsiifilised funktsioonid, näiteks näitaHosti() o näitaKalendrit()Nad genereerivad teavet, mida soovite visualiseerida. Näiteks muestraHost() jooksma hostname ja suunab tulemuse ümber $OUTPUTja seejärel helista muestraSalida 6 40 "Nombre del Host". Samamoodi, muestraCalendario() jooksma cal ja kuvab väikese kuukalendri kastis pealkirjaga "Kalender".

Põhiringis dialog --menu See vastutab tegeliku valikute menüü loomise eest. Parameetrid, näiteks tausta pealkiri, on määratud (--backtitle), kasti pealkiri (--title), noolte ja numbrite kasutamise kirjeldav tekst, mõõtmed (kõrgus, laius, nähtavate elementide maksimaalne arv) ja lõpuks iga menüüvaliku "märgis"-"kirjelduse" paarid.

Kasutaja valik salvestatakse dialoogi standardväljundi suunamisega sisendfaili (2>"${INPUT}"Seejärel loetakse see fail millegi sellisega nagu opcionesMenu=$(<"${INPUT}") ja a juhtumi valikudMenüü sees vastava funktsiooni käivitamiseks: näita protsesse, näita kalendrit, näita hostinime või välju menüüst.

Kui tsükkel lõpeb (kui kasutaja valib "Exit"), kustutab skript ajutised failid kui need on endiselt olemas, kasutades selliseid kontrolle nagu && rm $OUTPUT ja sama ka $INPUTSel viisil süsteem puhastatakse ja valmistatakse ette edaspidiseks kasutamiseks.

Valiku pluss-dialoogiga menüüd: valimine kursorite abil

Lisaks dialoogiboksidele sõnumiboksidena on olemas ka väga huvitav integratsioon: menüüde loomine, mis mitte ainult ei aktsepteeri numbreid, vaid võimaldavad ka kursorit erinevate valikute vahel liigutada , justkui oleks see rippmenüü rakendustes nagu Midnight Commander.

Utiliit Dialoog See sisaldab muuhulgas spetsiifilist menüükasti tüüpi: --menuSellise kõnega respuesta=$(dialog --title "Ejemplo de menu" --stdout --menu "Opciones" 12 20 5 1 "Opción 1" 2 "Opción 2" 3 "Opción 3" 4 "Opción 4")Ekraanile kuvatakse pealkirja ja nummerdatud loendiga kast; kasutaja liigub nooltega, valib kirje ja dialoog tagastab seotud väärtuse (näiteks "1", "2" jne), mis salvestatakse muutujasse respuesta.

Tänu võimalusele --stdoutValik kirjutatakse standardväljundisse ja selle saab otse käsuasendusega salvestada, nagu ülaltoodud. Sealt edasi kasutage lihtsalt käsku case "$respuesta" in tegutsema vastavalt valitud valikule. See variant on eriti kasulik ühendused SSH tekstirežiimis, kus graafilist liidest pole, aga soovitakse mugavat interaktiivset kogemust.

Suuremates stsenaariumides on tavaline kombineerida dialoogi Bash-funktsioonidega ja vajadusel teiste keeltega, näiteks Pythoniga , keerukamate ülesannete jaoks, näiteks Telegrami bottide loomiseks, kus valikute menüü liigub vestluse enda sees, kuid valiku- ja töötlemisloogika järgib terminali menüüdega väga sarnast skeemi.

  Kuidas Paintis kohandatud ikoone kujundada ja neid .ico-vormingusse eksportida

Kergete menüüde jaoks mõeldud "puhas" valikukäsk Bashis

Kuigi oleme juba näinud selle praktilist kasutamist selectBashi pakutava käsu põhisüntaksit tasub lähemalt uurida, sest see on väga kerge tööriist lihtsate menüüde loomiseks ilma väliste sõltuvusteta.

Üldine struktuur on järgmine: defineeritakse valikutega massiiv ja seejärel kirjutatakse see üles select opt in "${opciones}"; do ... doneIga kord, kui kasutaja sisestab numbri, määrab Bash muutujale vastava massiivi elemendi. opt ja toornafta sissetoodud väärtus $REPLY.

Tüüpiline menüü võib kuvada teadet, näiteks "Vali suvand:" ja valikut alternatiive: "Valik 1", "Valik 2", "Valik 3" ja "Välju". Tsükli sees võimaldab struktuur ` case $opt in` määrata igale stringile vastava toimingu: kuvada teadet, käivitada funktsioon, käivitada teine ​​skript jne.

Menüü sulgemiseks on seadistatud nii, et kui kasutaja valib „Välju”, siis break mis katkestab ahela selectLisaks saab haru kasutada *) ekslike sisendite (nt vahemikust väljas olevad numbrid) pealtkuulamiseks ja hoiatuse kuvamiseks, näiteks "kehtetu valik $REPLY".

See menüüvorming sobib eriti hästi siis, kui soovite midagi väga kaasaskantavat ja pretensioonitut : see ei vaja peale Bashi mingeid lisautiliite, töötab võrdselt hästi nii graafilistes keskkondades kui ka SSH kaudu ning on piisavalt väljendusrikas, et katta enamikku põhilisi interaktiivseid vooge.

Bash-programmeerimise põhioskused, mida menüüde jaoks vajate

Kõigest eelnevast maksimumi saamiseks on kasulik omandada põhitõed programmeerimine Bashis. Esiteks, seebang (#!/bin/bash või vastav tee teie süsteemis) ja rea ​​lõpu käsitlemine (CRLF vs LF), mis mõjutavad kaasaskantavust.

Samuti on oluline mõista, täitmisõigusedSkript ei käivitu otse enne, kui sellele on määratud täitmisbitt käsuga nagu chmod u+x nombre_script.shSealt edasi saad talle helistada ./nombre_script.sh või poolt bash nombre_script.shnagu eelistate.

Sisendi ja väljundi osas on käske nagu echo Nad prindivad tekstistringe või muutujate väärtusi, read See võimaldab koguda kasutajainfot ja suunata kasutaja ümber > y >> See võimaldab teil failidesse sisu kirjutada või lisada. Nende ümbersuunamiste haldamise õppimine on võtmetähtsusega, kui soovite, et teie menüü korralikult toimiks. halda konfiguratsioonifailekasutajaloendid või logisid.

Bashi muutujatel pole ranget tüüpi: need võivad sisaldada numbreid, teksti või mis tahes stringi, ilma et interpretaator nende vahel erilist vahet teeks. Need deklareeritakse lihtsalt järgmiselt: nombre=valorja neile viidatakse koos $nombreSoovitav on järgida selge ja kirjeldav nimetamisstiil, alustades tähe või alakriipsuga, vältides tühikuid ja reserveeritud sõnu, näiteks if, then o else.

Lõpuks, kontrollstruktuurid, näiteks if ... then ... fi, silmuseid while y for ja laused case Need on liim, mis hoiab koos kogu menüüde voogu: otsustab, milline suvand on valitud, millal küsimust korrata, kuidas välja valideerida või millal skriptist väljuda.

Automatiseeri skriptide täitmist croniga ja silu neid, kui need ebaõnnestuvad

Kui teie Bashi menüüd interaktiivselt töötavad, võiksite mõned neist ülesannetest automatiseerida nii, et need töötaksid ilma sekkumiseta, näiteks ajastada öise varukoopia teatud vaikesuvanditega. Siin tulebki mängu cron , klassikaline ülesannete ajastaja Unixi -laadsetes süsteemides.

Croni kirje süntaks järgib seda mustrit: minuto hora día mes día_semana comandoMidagi sellist nagu 0 0 * * * /ruta/a/script.sh See käivitab skripti iga päev südaööl, samal ajal kui */5 * * * * /ruta/a/script.sh See sõidab iga viie minuti tagant ja 0 6 * * 1-5 See toimub esmaspäevast reedeni kell 6.

Ajastatud ülesannete haldamiseks kasutate crontab -l (loetlege praegused töökohad) ja crontab -e (redigeeri). Nendes skriptides saate oma menüüde funktsioone ja loogikat taaskasutada, ainult et sel juhul määratakse valikud käsurea argumentide või sisemiste muutujate abil ilma kasutaja sekkumiseta.

Millal Bash-skriptide silumineOn mitu peamist tehnikat: aktiveerimine set -x Skripti alguses prindib Bash iga käivitatava käsu, millele eelneb "+", mis võimaldab teil samm-sammult jälgida. set -e See põhjustab skripti automaatse lõpetamise, kui mõni käsk tagastab väljumiskoodi, mis erineb 0-st.

Muutuv $? See sisaldab alati viimase käivitatud käsu väljumiskoodi, seega saate seda kasutada koos tingimuslausetega vigade tuvastamiseks: if ; then echo "Hubo un error."; fiJa muidugi ka silumissõnumid koos echo Strateegilistesse punktidesse sisestatuna aitavad need näha muutujate sisu ja tegelikku teostusvoogu.

Kui automatiseerimine hõlmab croni, on süsteemilogide ülevaatamine hädavajalik. Sellistes distributsioonides nagu Debian või Ubuntu lõpevad paljud croniga seotud teated /var/log/syslogSealt saate kontrollida, kas tööd on käivitatud, kas skriptid on tagastanud vigu või kas on probleeme lubadega.

Kõigi nende elementidega, alates lihtsamatest lugemis- ja suurtähtedega menüüdest kuni visuaalselt kõige meeldivamate dialoogiboksidega liidesteni , sh valiku kasutamine , hästi struktureeritud funktsioonid, automatiseerimine croniga ja põhilised silumistehnikad, on teie käsutuses tohutu hulk võimalusi Bash-skriptide loomiseks valikumenüüdega , mis muudavad teie igapäevase töö terminalis palju mugavamaks ja kontrollitumaks nii tavaliste kasutajaülesannete kui ka serverite ja personaalarvutite väikeste halduspaneelide jaoks.

Loo bash-skript graafilise menüüga
Seotud artikkel:
Kuidas luua bash-skripti graafilise menüü ja interaktiivsete liidestega