Bash, forkortelse for "Bourne Again SHell," er en Unix-shell og kommandosprog, der fungerer som både en kommandotolk for operativsystemet og et programmeringssprog til at skrive shell-scripts. Bash blev skabt som en erstatning for Bourne Shell (sh) og inkorporerer funktioner fra Korn Shell (ksh) og C Shell (csh), hvilket gør det til et kraftfuldt og alsidigt værktøj til kommandolinje- og scriptingopgaver. Bash er bredt anvendt i forskellige Linux-distributioner, macOS og andre Unix-lignende operativsystemer, og det fungerer som standard shell på mange systemer.
Bash blev udviklet af Brian Fox for GNU-projektet i 1987 som en gratis softwareerstatning for Bourne Shell (sh). Målet var at give brugerne en mere funktionsrig shell, samtidig med at der blev opretholdt kompatibilitet med eksisterende sh-scripts. Gennem årene har Bash udviklet sig gennem bidrag fra mange udviklere, og dens vækst blev drevet af den stigende popularitet af Linux og open-source software.
I sine tidlige år fik Bash hurtigt fodfæste blandt brugere og udviklere på grund af sin udvidelsesmulighed og det rige sæt af funktioner, den introducerede. Nøglefunktioner inkluderede kommandolinje-redigering, jobkontrol og forbedrede scriptingmuligheder. Indtil nu er Bash aktivt vedligeholdt, med version 5.2 udgivet i september 2021. Det fortsætter med at være et standardværktøj for systemadministratorer, udviklere og alle, der arbejder med Unix-lignende operativsystemer.
Bash har hentet inspiration fra flere andre shells og programmeringssprog. Syntaksen og kommandostrukturerne fra Korn Shell (ksh) og C Shell (csh) har haft stor indflydelse på dens design. Desuden gør dens kommandosprogsegenskaber det nemt at integrere med programmeringssprog som Python og Ruby, der ofte anvendes i scripts for forbedret funktionalitet.
Bash anvendes bredt til scripting og automatisering af systemopgaver, håndtering af softwareinstallationer, udførelse af systemadministrationsopgaver og behandling af databehandlingsopgaver. Det er integreret i udviklingsarbejdsgange for mange softwareapplikationer og CI/CD-pipelines, samt i cloud-miljøer og DevOps-praksis.
Bash understøtter variabeltildeling uden en forudgående typeerklæring. For eksempel:
name="World"
echo "Hello, $name!"
Bash inkluderer betingede udsagn som if-else til flowkontrol:
if [ "$name" == "World" ]; then
echo "Hello, World!"
else
echo "Hello, Stranger!"
fi
Bash tillader løkker som for
, while
og until
. Her er et eksempel på en for
-løkke:
for i in {1..5}; do
echo "Iteration $i"
done
Du kan definere og kalde funktioner i Bash:
greet() {
echo "Hello, $1!"
}
greet "User"
Bash understøtter kommandoudskiftning ved hjælp af backticks eller $(...)
:
today=$(date)
echo "Today is $today"
Bash understøtter en-dimensionelle indekserede arrays:
fruits=("apple" "banana" "cherry")
echo "First fruit: ${fruits[0]}"
Bash giver funktioner til strengmanipulation såsom substring-ekstraktion:
text="Hello World"
echo ${text:6:5} # Udskriver "World"
Bash tillader grundlæggende aritmetiske operationer ved hjælp af $((...))
:
result=$((5 + 3))
echo "Result is $result"
Du kan omdirigere ind- og uddata i Bash:
echo "Hello" > output.txt
Bash tillader brugen af here documents til multi-linje input, hvilket gør det nemt at sende multi-linje strenge til kommandoer:
cat << EOF
This is a multi-line string.
EOF
Mens Bash-scripts kan redigeres i enhver teksteditor, tilbyder flere integrerede udviklingsmiljøer (IDEs) support til Bash. Disse inkluderer Visual Studio Code, Atom, Sublime Text og Eclipse med plugins.
Bash-scripts tolkes snarere end kompileres, med Bash-tolken selv, der udfører scripts. Kommandoen til at køre et script er:
bash script.sh
For at bygge projekter er det almindeligt at oprette en Makefile ved hjælp af make
, eller bruge Bash-scripts til at automatisere opgaver som installation eller implementering.
Bash anvendes i forskellige domæner, herunder:
Bash finder sine nærmeste sammenligninger i sprog som Python og Perl til scripting, mens det kan sammenlignes med mere generelle programmeringssprog som C eller Java i specifikke anvendelsestilfælde.
Bash excellerer i kommandolinjeinteraktioner og systemopgaver, mens Python er mere alsidig til komplekse programmeringsopgaver, databehandling og applikationsudvikling. Python tilbyder et rigt standardbibliotek, hvilket gør det velegnet til større applikationer.
Perl bruges ofte til tekstbehandling og systemadministrationsopgaver; dog har det en mere kompleks syntaks sammenlignet med Bash. Bash fokuserer på kommandoudførelse, mens Perl er mere programmeringscentreret.
JavaScript er overvejende et klient-side web-sprog, mens Bash fungerer som en kommandotolk og scriptbehandler til systemoperationer. Bash er ikke egnet til webudvikling, mens JavaScript excellerer i det domæne.
Når du oversætter Bash-scripts til andre sprog, skal du sørge for at validere kommandoernes ækvivalenter og tjekke for afhængigheder af systemniveau funktioner. Værktøjer som sh2py
findes, der kan konvertere shell-scripts til Python, men de semantiske forskelle skal håndteres omhyggeligt.
Der er et par værktøjer tilgængelige til kilde-til-kilde oversættelse, herunder: