Skript on kindla laiendiga (.sh, .py, .rb jne) tekstifail, millel on eriline esimene rida, mida võõrsõnaga nimetame ka shebang. Tegemist on interpretaatori määramise reaga, mis toob välja skripti olemuse - käske hakatakse täitma rida realt. See on erinevus võrreldes kompileeritud lähtekoodiga, kus lähtekood (programmeerija poolt kirjutatud käsud vastavas programmeerimiskeeles) on kompileerimise käigus viidud kahendkoodi kujule (binaarkuju).
Käsureal failitüübi tuvastamine (toimib sõltumata faililaiendist):
file failinimi.laiend
# näiteks
file server.py
server.py: Python script, ASCII text executable
Skripti puhul on tekstifailiga kuhu paneme sõltuvalt skriptimiskeelest kirja samad käsud, mida käsureale kuid iga käsk uuelt realt või siis kombineeritakse operaatoritega kokku. Kuigi Linuxis jt UNIXilaadsetes süsteemides ei ole sageli failitüüp oluline siis parema haldamise ja äratundmise nimel tasub siiski skriptidele laiendeid kirjutada.
Mõned shebangi näited:
#!/bin/sh
- Faili käivitamine Bourne'i kestprogrammiga.#!/bin/bash
- Faili käivitamine Bashi kestprogrammiga.#!/usr/bin/perl -T
- Faili käivitamine Perliga koos "tainted" argumendiga.#!/usr/bin/env python
- Faili käivitamine Pythoniga, kasutades rakenduse env
abil keskkonnamuutujana tegeliku käivitusteekonna automaatset otsimistVastavalt interpretaatorile toimub ka käivitamine, näiteks
sh skript.sh
bash skript.sh
set -euo pipefail
?Skripti alguses peale shebangi saab olla rida
set -euo pipefail
muudab Bash‑skripti käitumist, et parandada vigade avastamist ja vältida ootamatuid efekte:
e
(errexit
)
Skript lõpetab koheselt, kui mõni käsk tagastab mitte‑nulli (st tekib viga).
See tagab, et ükski oluline käsk või alamprotsess jääb “vaikselt” ebaõnnestunuks, mistõttu viga võib hiljem ilmneda täiesti teises kohas. (Stack Overflow)
u
(nounset
)
Kohtleb kõik määratlemata (unset) muutujate viited veana.
Kui skriptis kasutatakse muutuja nime, millele pole väärtust omistatud, siis skript kohe lõppeb, vältides näiteks kirjavigade või valede vaikeväärtuste probleeme. (Shkodenko Web Development)
o pipefail
Tavapäraselt tagastab Bash “torupiin” (pipeline) staatuseks viimase käsu väljumistüübi. pipefail
‑i abil muutub see nii, et staatuseks võetakse esimese ebaõnnestunu käsu väljumitüüpe (või 0, kui kõik õnnestusid).
See võimaldab tuvastada torupiinide seest vigu ka muudes kui viimasena jooksnud käskudes. (LinuxSimply)