Difference between revisions of "Bash"
m (→Fødslen af et process) |
m (→Debugging scripts) |
||
Line 43: | Line 43: | ||
**Brug enten '''set +x''' eller '''set +o xtrace''' for at de-aktivere trace mode | **Brug enten '''set +x''' eller '''set +o xtrace''' for at de-aktivere trace mode | ||
− | < | + | <pre class=pre> |
#!/usr/bin/bash | #!/usr/bin/bash | ||
Line 61: | Line 61: | ||
#kode her er ok | #kode her er ok | ||
... | ... | ||
− | </ | + | </pre> |
+ | |||
== Variable == | == Variable == | ||
Der er | Der er |
Revision as of 12:13, 21 August 2009
bash - eller Bourne Again Shell - er den mest benyttede shell eller kommandofortolker til Unix og Linux systemer i dag. Der findes andre shells end bash. For eksempel csh (C-Shell), ksh (Korn-Shell) og bsh (Bourne-Shell).
Bash kaldes ofte i engelsk litteratur for en CLI - Command Line Interpreter eller kommandofortolker på dansk.
Contents
Filer
Selve programmet bash kan være installeret i forskellige biblioteker på forskellige systemer men findes oftest i /usr/bin biblioteket. På BSD Unix varianter findes bash ofte i /usr/local/bin. Hvis du ikke ved hvor din lokale bash findes kan den findes med whereis bash kommandoen.
/etc/profile | Opstartsfil som bash udfører for alle brugere på maskinen. Udføres før den personlige opstartsfil. |
$HOME/.bash_profile | Denne fil er din personlige opstartsfil og vil blive udført når du logger ind på systemet, og indeholder typisk opstartskommandoer, velkomst... Hvis .bash_profile ikke eksister i dit hjemmebibliotek vil bash kigge efter filen .bash_login og udføre den. Hvis denne heller ikke eksister kigger bash efter filen .profile og udfører kommandoerne i den. Bemærk kun en af disse filer vil blive udført i rækkefølgen: 1: .bash_profile 2: .bash_login eller 3: .profile |
$HOME/.bashrc | Denne fil er personlig og vil blive udført hvergang der startes en sub-shell, det vil sige hvergang bash starter en ny
bash |
$HOME/.bash_logout | Denne fil er din personlig afslutningsfil og udføres når der logges ud. |
$HOME/.inputrc | Denne fil indeholder opstartskommandoer til bash. Anvendes til for eksempel at ændre tastatur genveje. |
Online bash hjælp
- On line manualen: man bash
- indbygget bash hjælp: help
- hjælp til bash indbyggede kommandoer: help while (eksempel)
bash tilpasning med set kommandoen
Hvis du ønsker at ændre bash måde at fungere på kan set kommandoen anvendes. Dette er normalt ikke nødvendigt.
- Kommandoer
- help set
Debugging scripts
Det kan være svært at debugge scripts og se hvor problemet er. Her kan bash sættes i enten verbose eller trace mode. Verbose eller trace mode kan slås til og fra efter behag i dit script.
- verbose mode. (Viser kommandoer som de læses fra scriptet. Som de er skrevet)
- Brug enten set -v eller set -o verbose for at aktivere verbose mode
- Brug enten set +v eller set +o verbose for at de-aktivere verbose mode
- trace mode. (Viser kommandoer som de udføres i scriptet. Fx. indholdet af variablerne.
- Brug enten set -x eller set -o xtrace for at aktivere trace mode
- Brug enten set +x eller set +o xtrace for at de-aktivere trace mode
#!/usr/bin/bash ... #Kode her er OK ... set -x #bash trace mode slået til og alle kommandoer udført vises på skærmen ... #mistænkelig kode her ... set +x #bash trace mode slået fra og bash fungerer normalt ... #kode her er ok ...
Variable
Der er
Job kontrol
Job kontrol kan anvendes til at styre flere kørende programmer samtifig. Et kørende program kan suspenderes - dvs. stoppes - og resume - dvs. fortsætte - på et senere tidspunkt. Jobs kan køre i baggrunden - det vil sige ikke med standard output på skærmen.
Funktion | kommando |
---|---|
Stoppe kørende program i forgrunden | <CTRL>-Z |
Se stoppede programmer og jobnumre | jobs |
Forsætte stoppet program i forgrunden | fg [job-nummer] |
Fortsætte stoppet program i baggrunden | bg [job-nummer ...] |
bash og processer
Processer er de programmer der kører på maskinen og programmer du starter i bash.
Fødslen af et process
Når der startes en ny process vil bash starte processen med tre åbne filhåndtag. Dette er den normale situation og sker hver gang der startes et program/process. <source lang="cli"
Navn | filhåndtag # | Forklaring |
---|---|---|
STDIN (Standard input) | 0 | Standard indlæsning af data. Hentes som standard fra tastaturet |
STDOUT (Standard output) | 1 | Standard udlæsning af data. Sendes som standard til skærmen |
STDERR (Standard error) | 2 | Fejl beskeder fra processem. Sendes som standard til skærmen |