Ukubhala umbhalo ku-Bash nge- set -euo pipefail, trap kanye nokungena ngemvume

Isibuyekezo sokugcina: 17/12/2025
Author: Isaka
  • Ukunika amandla i-`set -euo pipefail` kanye ne-safe IFS kuvumela izikripthi ze-bash ukuthi zehluleke kusenesikhathi futhi kugwenywe amaphutha athule lapho kuphathwa amakhodi okuphuma kanye neziguquguquko ezingachazwanga.
  • Ukusebenzisa izithiyo ze-ERR kanye nezimpawu ezifana ne-INT noma i-TERM kwenza kube lula ukurekhoda amaphutha, ukwenza ukuhlanza okulawulwayo, nokugcina uhlelo lusesimweni esifanayo.
  • Uhlelo lokubhalisa oluhlanganisiwe olunamazinga nezitembu zesikhathi luthuthukisa ukulandelelwa, ukulungisa amaphutha, kanye nokuhlanganiswa kwesikripthi ezindaweni ze-DevOps kanye ne-CI/CD.
  • Inhlanganisela yohlelo lokuzivikela, ukuqinisekiswa kokufakwayo, kanye nemikhuba emihle yokulungisa amaphutha kwenza izikripthi ze-bash zithembeke ekukhiqizweni.

Ayini ama-blobs kanambambili noma okuphathelene ku-Linux?

Ukwenza imisebenzi ngokuzenzakalelayo nge-Bash kwenza umehluko omkhulu phakathi kwesistimu edinga ukuqapha okuqhubekayo kanye nesistimu emane izisebenzele futhi ikuxwayise uma kukhona okungahambi kahle . Ezindaweni ze-DevOps kanye nokuphathwa kwesistimu, ukubhala okuhle akukhona nje ukuhlanganisa imiyalo : kumayelana nokuvimbela ukwehluleka buthule, ukuvumela ukulungisa amaphutha ngokushesha, nokushiya umkhondo ocacile welogi ukuze uqonde ukuthi kwenzekeni nokuthi nini.

Uma uqala ukusebenza ngokungathi sína ngezikripthi, uthola ukuthi uBash, ngokuzenzakalelayo, uyavumela: uma kukhona okungahambi kahle, iskripthi sivame ukuqhubeka sengathi akwenzekanga lutho, sisebenzisa iziguquguquko ezingenalutho noma imiphumela engaphelele . Lokhu kuholela ezindabeni ezesabekayo njenge-backups ezinqunyiwe (okungcono ukuthi zivumelaniswe ne-rsync ku-Linux ), ukususwa okukhulu ngenxa yezindlela ezakhiwe kabi, noma ukuthunyelwa okubonakale kuphumelele kodwa kwehluleke phakathi nendawo. Yingakho kunengqondo kakhulu ukufunda ukuthi ungasebenzisa kanjani kahle i -`set -euo`, `pipefail`, `trap`, kanye nohlelo oluhle lokungena ngemvume.

Kungani iBash ihlala ibalulekile ku-DevOps

Emsebenzini wansuku zonke wezinhlelo kanye ne-DevOps, i-Bash isalokhu iyithuluzi elisetshenziswa kakhulu: kumaseva e-Linux , izitsha, imishini ye-CI/CD, izikripthi zokulungisa… Inzuzo yayo enkulu ukuthi awunciki ekufakeni izikhathi zokusebenza zangaphandle noma imitapo yolwazi ; ngegobolondo eliza nohlelo, ungenza konke kube ngokuzenzakalela kusukela ekuhlolweni kwezempilo kuya ekuqedeni ukusetshenziswa.

Lawo mandla ahambisana nokubamba: ngezikripthi ezibhalwe kabi, kulula kakhulu ukuthi umyalo wehluleke kuyilapho ingxenye esele yesikripthi iqhubeka sengathi konke kuhambe kahle . Engeza kulokho imisebenzi ebalulekile (ukwenza amakhophi agciniwe, ukujikeleziswa kwamalogi, ukususwa kwamafayela, ukwenziwa okuhleliwe), futhi ingozi ayiyona into ecatshangelwayo: ngokushesha noma kamuva, okuthile kuzophuka ngaphandle kokuthi uqaphele.

Yingakho kubaluleke kakhulu ukuthi, ngaphezu kokwenza ngokuzenzakalela, ufake ukuphathwa kwamaphutha, ukulungisa amaphutha, kanye nokufaka amalogi ahlelekile kusukela ekuqaleni . Futhi yilapho izinto ezintathu zisebenza khona eziphindaphindwa kuzo zonke izibonelo ezinhle zesikripthi sesimanje se-Bash: `set -euo pipefail`, `trap`, kanye nohlelo lokufaka amalogi oluhambisanayo.

Isibonelo esisebenzayo: iskripthi sokuqapha esinokuphathwa kwamaphutha okuqinile

Iphethini ewusizo kakhulu ukudala iskripthi sokuqapha esiqoqa ulwazi oluyisihluthulelo sesistimu (i-CPU, imemori, idiski, inethiwekhi, izinqubo, amalogi akamuva, njll.) futhi lokho kwehluleka ngokuphephile, kushiya imikhondo ecacile kufayela lelogi . Lolu hlobo lwesikripthi lungasetshenziswa ngesandla, kusuka ku-cron, noma njengokusekelwa kumapayipi e-CI/CD.

Umqondo ojwayelekile Umqondo ojwayelekile ukuba neskripthi esinalokhu:

  • Imodi eqinile iyasebenza Sebenzisa i-`set -euo pipefail` ukuze wehluleke kusenesikhathi futhi ungaqhubeki nokusebenza ezimweni ezingahambisani.
  • isicupho ku-ERR kanye nezimpawu ezifana ne-INT noma i-TERM ukurekhoda amaphutha nokuhlanza ngaphambi kokuhamba.
  • Umsebenzi wokungena ngemvume ohlanganisiwe ebhala ukuze iduduze ifayela elinesitembu sesikhathi kanye nezinga (ULWAZI, ISEXWAYISO, IPHUTHA).
  • Ukuhlolwa kwe-Modular Amalogi e-CPU, imemori, idiski, inethiwekhi, kanye nesistimu.
  • Ukufakwa kokuxhomekeka okukhethwa kukho njenge-sysstat, i-lm-sensors noma i-net-tools, ezivumelaniswe ne-Debian/Ubuntu noma i-RHEL/CentOS/Fedora.

Kuskripthi salolu hlobo, kuvamile ukubona into efana nale:

  • Izinguquko zombala ukugqamisa izixwayiso namaphutha ku Isikhumulo (BOMVU, LUHLAZA, PHELILE, LUHLAZA LUHLAZA, NC).
  • Imizila efana /var/log/system-monitor.log ngamalogi ajwayelekile kanye /var/log/system-metrics.log ngezilinganiso zesikhathi.
  • Imikhawulo elungisekayo isexwayiso: isibonelo, i-ALERT_CPU_THRESHOLD=80, i-ALERT_MEM_THRESHOLD=80, i-ALERT_DISK_THRESHOLD=85.
  • Un isikhawu sokuqapha MONITOR_INTERVAL ukuze uphinde ukuhlola njalo ngemizuzwana engu-X uma usebenzisa iskripthi ngendlela ejikelezayo.

Ngaleso sisekelo, kwakhiwa iskripthi esinamandla esingagcini nje ngokuqoqa ulwazi, kodwa futhi esisabela kahle ekuhlulekeni, sishiye ubufakazi obucacile, futhi esingafakwa ezinqubweni ezinkulu.

Sebenzisa imodi eqinile: set -euo pipefail bese uvikela i-IFS

Izinkinga eziningi "ezingavamile" ku-Bash zivela eqinisweni lokuthi igobolondo, ngokuzenzakalelayo, alilibheki njengento engathí sina uma umyalo wehluleka noma i-variable ingekho . Ukuze baphoqe ukuziphatha okuphephile, abantu bavame ukusebenzisa lokho abaningi abakubiza ngokuthi "imodi ye-Bash eqinile."

  Indlela yokuvula nokusebenzisa i-Navigator kahle ku-LibreOffice

Izingxenye eziyisisekelo zaleyo modi eqinile yilezi:

  • setha -e: kubangela ukuthi iskripthi siphele ngokushesha nje lapho umyalo ubuyisela ikhodi yokuphuma engeyona eye-0, ngaphandle kwezinye izimo ezikhethekile (uma, ngenkathi, &&, ||…).
  • setha -u o setha -o ibizo: kubangela iphutha uma uzama ukusebenzisa i-variable engachazwanga, esikhundleni sokuyiphatha njengentambo engenalutho.
  • setha -o ipayipi: yenza ikhodi yokuphuma ibe yiphayiphi okuyikhodi yomyalo wokuqala ehlulekayo, hhayi owokugcina kuphela.
  • IFS=$'\n\t': ikhawulela isihlukanisi sensimu yangaphakathi ekuqhekekeni komugqa kanye nethebhu ukuvimbela izikhala ekuqhekekeni kwama-loop phezu kohlu lwamafayela noma afanayo.

Ukuhlanganisa konke kuphumela entweni evamile kakhulu enhlokweni yezikripthi ezingathi sína:

set -euo pipefail
IFS=$'\n\t'
i-headboard evikelekile

Lokhu kuvimbela izimo lapho umyalo ophakathi kuphayiphi uhluleka khona, kodwa iskripthi siyaqhubeka ngoba umyalo wokugcina ubuyisela u-0. Kuvimbela futhi iziguquguquko ezipelwe kabi noma ezingachazwanga ukuthi zingabi yizintambo ezingenalutho buthule, okuvame ukuba umthombo wezindlela ezingalungile noma izimo ezinengqondo ezingahlangatshezwa.

Izingibe ze-set -e: kungani kungewona umlingo futhi kungaphula iskripthi sakho

Nakuba iwusizo kakhulu, i-`set -e` ayiyona inhlamvu yesiliva . Ukuziphatha kwayo kunezincazelo ezingadida uma ungaqondi ukuthi isebenza kanjani. Isibonelo, ezinye izakhiwo ezifana nalezi:

  • Imiyalo ngaphakathi if, while o until.
  • Izinkulumo ezine && y || ukulawula ukugeleza.
  • Ukwanda okuthile kwezibalo.

Azibangeli "ukuphuma okusheshayo" njengoba ungalindela. Isibonelo esidala ukwanda kwezibalo nge- post-increment :

((contador++))

Ukwandiswa kwe-Arithmetic kubuyisela inani uBash alihumusha njengekhodi yokuphuma. Endabeni yokwanda kwangemva kokwenyuka, lapho inkulumo ibuyisela u-0 kubhekwa njengempumelelo, kodwa ngezinye izikhathi ingase ibuyisele u-1, okuthi, nge-` set -e`, kubangele ukuthi iskripthi siphele ngokushesha . Into ebonakala ingenangozi njengekhawunta ngaphakathi kwe-loop ingabangela ukuthi iskripthi sakho siphume ngaphambi kwesikhathi.

Ngokuphambene nalokho, izakhiwo ezifana ne -((++i)) noma i-((i+=1)) ziziphatha ngendlela ehlukile futhi azibangeli inkinga efanayo. Lokhu kubonisa ukuthi nge-`set -e` udinga ukujwayelana kakhulu nezakhi ozisebenzisayo , ngoba kunezimo eziningi zomngcele.

Ngakho-ke, ababhali abaningana abanolwazi kanye nabaphathi batusa ukusebenzisa i- set -e ikakhulukazi esigabeni sokuhlola , njengendlela enolaka yokuthola amaphuzu abuthakathaka, kodwa ekukhiqizeni bakhetha indlela ecacile: ukuhlola amakhodi okuphuma ngesandla nokunquma ukuthi bazoyihoxisa nini futhi kanjani iskripthi.

ugibe: bamba amaphutha nezimpawu ukuze uhlanze futhi ubhale kahle

Umyalo othi `trap` ungomunye umdlali oyinhloko uma sikhuluma ngeskripthi sokuzivikela ku-Bash. Ngokuyisisekelo, ikuvumela ukuthi ucacise ukuthi yimiphi imiyalo noma imisebenzi ofuna ukuyenza lapho igobolondo lithola isignali noma umcimbi okhethekile (njenge-ERR noma i-EXIT).

Ukusetshenziswa okuvamile Ukusetshenziswa okuvamile kwe-trap kuma-script aqinile yilokhu:

  • i-trap 'error_handling_function' ERR: yenza iphutha ekuphatheni i-logic ngqo lapho umyalo wehluleka.
  • i-trap 'cleaning_function' INT TERM: sabela ezimpawini ezifana ne-CTRL+C (SIGINT) noma izicelo zokumisa (SIGTERM).
  • ugibe 'umsebenzi_wokuphothula' EXIT: sebenzisa ibhulokhi lapho uphuma kuskripthi, kungakhathaliseki ukuthi kuhambe kahle noma cha.

Cabanga ngeskripthi, lapho sithola i-CTRL+C, esikhundleni sokuma ngokuzumayo, esibiza umsebenzi wokuhlanza osusa amafayela esikhashana, uvale ukuxhumana, noma ushiye umlayezo ocacile kumalogi:

trap 'limpieza' TERM INT
function limpieza(){
echo "Ejecutando limpieza, el usuario uso CTRL + C"
# ... lógica de limpieza ...
}
isenzo sokuvimbela

Le ndlela iwusizo kakhulu ezinqubweni ezinde (ama-backups, i-ETL, ukuthunyelwa) lapho ufuna ukukwazi ukuyeka ngendlela elawulwayo ngaphandle kokushiya uhlelo lusesimweni esingaguquki.

Lokho ongakwazi nokungakwazi ukukubamba nge-trap ERR

Isibonelo esivamile: Iziqondiso eziningi ziphakamisa ukusebenzisa into efana nale:

trap 'echo "Error en línea $LINENO" >&2' ERR umugqa wokuthwebula

ukuloba amaphutha ngenombolo yabo yomugqa. Kulungile lokho, kodwa kubalulekile ukuqonda ukulinganiselwa kwawo . I-Trap ingenza:

  • Sebenzisa ikhodi eyengeziwe uma i-ERR ivuselelwaIsibonelo, ukubhalela ilogi enedethi, iskripthi, kanye nomugqa.
  • Finyelela ikhodi yokuphuma yomyalo wokugcina nge $?.
  • Ukwazi umugqa wesikripthi one-$LINENO, iwusizo kakhulu ekulungiseni amaphutha.
  Amathiphu okuthi Uyisetha kanjani Iphrinta Yakho Ye-Google Cloud Printing

Lokho i-ERR trap engenakukwenza "ukusindisa" umphumela ojwayelekile wephutha (stderr) womyalo osuvele usebenza, ngaphandle kokuthi uke wawuqondisa kabusha kufayela noma isichazi ongasifunda. Iphutha ngokwalo liwukugeleza kombhalo, hhayi inani elilodwa.

Amanye amaphethini ahilela ukuqondisa kabusha umphumela we-stderr wesikripthi sonke ku-log yesikhashana futhi, ku-trap, ukwengeza i-header enosuku, ifayela, kanye nenombolo yomugqa ukuze ibhulokhi yephutha ihlotshaniswe nephuzu kusikripthi lapho kwenzeke khona ukwehluleka. Kungumsebenzi omningi, kodwa uma okuthile kuphahlazeka ekukhiqizeni, uyakwazisa ukuba nomongo.

Ukungena ngemvume ku-Bash: ukuqopha kuphela lokho okudingekayo, okufomethwe, futhi ngaphandle kokuhlanganisa izinto

Uma wenza imisebenzi ebaluleke kakhulu ngokuzenzakalelayo, udinga ukwazi ukuthi kwenzekeni, nini, nokuthi umphumela waba yini . Yingakho cishe zonke izibonelo zokubhala ezingathi sína zigcina zifaka umsebenzi wokubhalisa ohlanganisiwe ukuze kulungiswe ifomethi.

Umsebenzi ojwayelekile ungase ubukeke kanje:

log_message() {
local level="$1"
local message="$2"
local timestamp=$(date "+%Y-%m-%d %H:%M:%S")
echo -e "${timestamp} ${message}" | tee -a "$LOG_FILE"
}
ifomethi ehlanganisiwe

Izibonelo: Ngokuthile okufana nalokhu ungashayela ucingo:

  • log_message "INFO" "Ukuqala ukuhlola i-CPU"
  • log_message "ISEXWAYISO" "Ukusetshenziswa kwediski ngaphezu kuka-85%"
  • log_message "ERROR" "Ayikwazanga ukuxhuma kusizindalwazi"

futhi gcina ifomethi efanayo njalo, usuku kanye nezinga kuphawulwe ngokucacile. Ukusebenzisa i-`tee -a` kukuvumela nokuthi ubuke umlayezo esikrinini bese uwugcina kufayela lelogi ngesikhathi esisodwa, okuyinto elula kakhulu kokubili ukusetshenziswa okusebenzisanayo kanye nokuhlaziywa kamuva.

Omunye umkhuba omuhle ukuhlukanisa amalogi omsebenzi (okwenziwa yiskripthi) kanye nama-metric noma amalogi emiphumela (i-CPU, i-RAM, ukusetshenziswa kwediski, njll.) abe amafayela ahlukene. Isibonelo:

  • /var/log/system-monitor.log ngemicimbi nemiyalezo.
  • /var/log/system-metrics.log ukuze uthole amarekhodi ezimo ngezikhathi ezithile.

Lokhu kwenza kube lula ukuhlanganiswa. Lokhu kwenza kube lula ukondla amathuluzi angaphandle, abahlaziyi, noma ngisho nezixazululo zokubuka ngaphandle kokuxuba imiyalezo yabantu nedatha yomshini.

Ukuhlolwa kwesimo sesistimu: i-CPU, imemori, idiski, inethiwekhi, namalogi

Ukusetshenziswa okuvamile kwe-Bash ezindaweni ze-Linux ukusebenzisa iskripthi "sokuhlola uhlelo okusheshayo" esiqoqa ulwazi oluyisisekelo oludingekayo ukuze kutholakale izinkinga ngesikhathi esisodwa . Lolu hlobo lwesikripthi luvame ukufaka amabhlogo amaningana:

  • Umthwalo we-CPU: ukugqoka mpstat uma itholakala (ngenxa yephakheji ye-sysstat), noma ngokusebenzisa top kumodi ye-batch ukuthola isifinyezo sokusetshenziswa kwe-CPU.
  • Izinqubo eziphezulu nge-CPU ngayinye: nge ps aux --sort=-%cpu | head -n N ukuze ubone ukuthi yini edla izinsiza eziningi.
  • Isikhala sedisk: nge df -h, ukunaka ngokukhethekile ukwahlukaniswa kwezimpande kanye nanoma yimiphi imiqulu ebalulekile yohlelo lokusebenza noma yolwazi (bona ukuthi kanjani khulula isikhala ku-Linux).
  • Imemori ye-RAM kanye ne-SWAP: nge free -hukubona ukuthi kusetshenziswa malini nokuthi kusetshenziswa yini ukushintshana ngokweqile.
  • Isimo senethiwekhi: ukuhlola ukuxhumana kwangaphandle nge-ping ku-IP eyaziwayo (ngokuvamile i-8.8.8.8) nokufaka ohlwini izixhumi ezisebenzayo ezine ip addr shownokusebenzisa amathuluzi anjenge i-netcat (nc/ncat) ukuze uthole ukuhlolwa okuthuthukile.
  • Amalogi wesistimu wakamuva: ukudweba imigqa yokugcina nge journalctl -n noma okulinganayo, ukuthola amaphutha esevisi ngaphambi nje kokuba iskripthi sisebenze.

Umphumela uvame ukugcinwa kufayela lelogi noma uboniswe ngendlela efomethwe esikrinini, okusebenza njengesithombe esisheshayo sempilo yesistimu ongazibuyekeza wena noma uhlanganise namathuluzi okuqapha.

Ukufakwa kokuxhomekeka okuzenzakalelayo kanye nokuhlolwa kwamalungelo

Izinto Ezidingekayo Imininingwane ebalulekile yezikripthi eziningi zokuphatha ukuthi, ngaphambi kokwenza noma yini engathi sína, bayaqinisekisa ukuthi kuhlangatshezwane nemibandela emibili:

  • Isikripthi sisebenza njenge izimpande (noma ngeningizimu).
  • Amathuluzi adingekayo afakiwe kuye ngohlelo lokusebenza.

ukuqinisekiswa kwempande Ukuqinisekiswa kwezimpande kuvame ukwenziwa nge $EUID:

check_root() {
if ; then
log_message "ERROR" "Este script necesita privilegios de root para instalar paquetes."
log_message "WARNING" "Por favor, ejecute con sudo."
exit 1
fi
}
Iyahluleka uma ungenayo impande.

Ngale ndlela ugwema amaphutha kamuva ngenxa yokuntuleka kwezimvume futhi uthumela umlayezo ocacile kumsebenzisi kusukela ekuqaleni.

  Ungalanda i-Tor Browser ye Windows 10

thola i-distro Ukufakwa kwezinto ezixhomeke kuzo kuvame ukusekelwa yi- /etc/os-release ukuthola umndeni wokusabalalisa:

  • En Debian / Ubuntu kuyasetshenziswa apt-get ukufaka amaphakheji afana ne-sysstat, i-lm-sensors, amathuluzi e-net.
  • En I-CentOS / RHEL / Fedora kuzodonswa dnf o yum ngamaphakheji alinganayo (ama-lm_sensors, amathuluzi e-net, njll.).

Izexwayiso, i-cron, kanye nokuthunyelwa kwelogi: ukuhambisa iskripthi ekukhiqizweni

Uma usunombhalo wokuhlola noma wokuzenzakalela oqinile, isinyathelo esilandelayo esinengqondo ukuwuhlanganisa nomkhuba wakho wansuku zonke :

  • Izexwayiso nge-imeyili, i-Slack, noma ezinye iziteshiIsibonelo, uma ukusetshenziswa kwediski kudlula u-90%, uthumela i-imeyili usebenzisa i-mailx noma i-Slack webhook. Iphethini evamile ukuhlola inani nge-df/awk/sed futhi, uma kudlula umkhawulo othile, qalisa isaziso.
  • Ukwenziwa ngezikhathi ezithile nge-cron: engeza okufakiwe okufana nalokhu 0 8 * * * /ruta/a/script.sh ukuze isebenze nsuku zonke ngesikhathi esithile.
  • Ukuqondisa kabusha okukhiphayo kumafayela elogi: enza ./script.sh > /var/log/system-check.log 2>&1 uma ufuna ukufaka wonke ama-standard kanye nama-error output kufayela elilodwa.

Kubalulekile ukuqonda ukuthi uma iskripthi sakho senzelwe ukuma ephutheni lokuqala usebenzisa i-`set -euo pipefail`, lokhu kusho ukuthi umsebenzi we-cron noma ipayipi le-CI/CD eliwubizayo lizobona ngokucacile ikhodi yokuphuma engeyona yero uma kukhona ukwehluleka, okukuvumela ukuthi uqalise ukugeleza kokubuyisa, umake ukwakheka njengokuhlulekile, njalo njalo.

Ukulungisa iphutha ku-Bash: setha umkhondo we--x, -v, -ny kufayela

I-Bash ayinayo i-debugger njengezinye izilimi, kodwa inikeza izinketho eziningana zokulungisa amaphutha ezinamandla kakhulu , lapho zisetshenziswa kahle, zisindisa amahora amaningi okuthi "kungani lokhu kwenzeka emhlabeni?":

  • setha -x o setha -o xtrace: ibonisa umyalo ngamunye oqaliswe ngawo wonke amapharamitha awo asevele enwetshiwe. Kuhle kakhulu ukubona ukuthi yimaphi amanani angempela athathwa yiziguquguquki.
  • setha -v o setha -o isenzo: Iphrinta imigqa yesikripthi njengoba ifundwa, ngisho nangaphambi kokunwetshwa. Iwusizo ekuqondeni ukugeleza.
  • setha -n o setha -o noexec: ihlaziya i-syntax ngaphandle kokusebenzisa ikhodi, ilungele ukubamba izingcaphuno, ama-brace noma ama-bracket angekho.
  • setha -uNjengoba sekushiwo, iyahluleka uma kusetshenziswa iziguquguquko ezingachazwanga, okuwusizo kakhulu ngesikhathi sokulungisa amaphutha anengqondo.

Ngaphezu kwalokho, ungakhawulela umphumela walezi zinketho engxenyeni ethile yesikripthi ngokuyisonga nge-`set -x` / `set +x`, isibonelo:

set -x
# bloque problemático
read -p "Pass Dir name : " D_OBJECT
read -p "Pass File name : " F_OBJECT
set +x
umkhondo wesikhathi

#!/bin/bash
exec 6> salida_debug.log
BASH_XTRACEFD="6"
set -x
# ... resto del script ...
ukuqondisa kabusha umkhondo

Ngakho-ke, lonke ulwazi lokulungisa amaphutha lugcinwa ku- output_debug.log , futhi ungaqhubeka nokubona kuphela umphumela "ojwayelekile" wesikripthi ku-terminal.

Isibonelo esijwayelekile sesiphazamisi esineziguquguquki ezingachazwanga

Inkinga evamile kakhulu uma ungasebenzisi i-`set -u` ukusebenzisa iziguquguquko ezingekho ngaphandle kokuqaphela. Cabanga ngeskripthi esicela igama lento bese sihlola ukuthi ngabe ifayela noma isiqondisi, kodwa sisebenzisa igama elingalungile le-variable:

#!/bin/bash
read -p "Nombre del Objeto : " OBJECT
if ]; then
echo "$OBJECT es un archivo"
elif ]; then
echo "$OBJECT es un directorio"
fi
iphutha eliguquguqukayo

Njengoba i-$OBJECT1 ingachazwanga , iBash iyandisa ibe yintambo engenalutho; izivivinyo ze--fy -d azibuyisi iphutha, zimane zehluleke, futhi iskripthi siphuma ngekhodi engu-0. Akukho "okwenzekayo," kodwa ngokunengqondo umphumela awusiwo owawulindelwe.

Uma usebenzisa iskripthi nge -`bash -u scriptname` noma usebenzisa i-`set -u` , uzothola ngokushesha iphutha elithi "Unbound variable", elikuholela ngqo ephutheni lohlobo. Uma lihlanganiswe ne -`bash -x scriptname` noma i-`set -x`, uzobona nomugqa othize kanye namanani asetshenziswayo, okwenza ukulungisa amaphutha kube lula kakhulu.

Ukudala Iziqukathi Ezingasindi NgePodman ku-Linux
I-athikili ehlobene:
Iziqukathi Ezilula ezine-Podman ku-Linux: Umhlahlandlela Osebenzayo