Bash, kort for "Bourne Again SHell," er ein Unix-skall og kommandospråk som fungerer både som ein kommandotolk for operativsystemet og som eit programmeringsspråk for å skrive skallskript. Den blei utvikla som ein erstatning for Bourne Shell (sh), og Bash inkorporerer funksjonar frå Korn Shell (ksh) og C Shell (csh), noko som gjer det til eit kraftig og allsidig verktøy for kommandolinje- og skriptingoppgåver. Bash er mykje brukt i ulike Linux-distribusjonar, macOS og andre Unix-liknande operativsystem, og det fungerer som standard skall på mange system.
Bash blei utvikla av Brian Fox for GNU-prosjektet i 1987 som ein gratis programvareerstatning for Bourne Shell (sh). Målet var å gi brukarar ein meir funksjonsrik skall samtidig som ein oppretthaldt kompatibilitet med eksisterande sh-skript. Gjennom åra har Bash utvikla seg gjennom bidrag frå mange utviklarar, og veksten blei driven av den aukande populariteten til Linux og open kildekode-programvare.
I sine tidlege år fekk Bash raskt fotfeste blant brukarar og utviklarar på grunn av sin utvidbarheit og det rike settet av funksjonar det introduserte. Nøkkelfunksjonar inkluderte kommandolinje-redigering, jobbkontroll og forbedra skriptingsevner. Per no er Bash aktivt vedlikehalden, med versjon 5.2 som blei lansert i september 2021. Det fortset å vere eit standardverktøy for systemadministratorar, utviklarar og alle som arbeider med Unix-liknande operativsystem.
Bash har henta inspirasjon frå fleire andre skall og programmeringsspråk. Syntaksen og kommandostrukturane til Korn Shell (ksh) og C Shell (csh) har sterkt påverka designet. I tillegg gjer funksjonane i kommandospråket det enkelt å integrere med programmeringsspråk som Python og Ruby, som ofte blir brukt i skript for å auke funksjonaliteten.
Bash blir mykje brukt til skripting og automatisering av systemoppgåver, administrering av programvareinstallasjonar, utføring av systemadministrasjonsoppgåver og håndtering av databehandlingsjobbar. Det er integrert i utviklingsarbeidsflytane til mange programvareapplikasjonar og CI/CD-pipelines, samt i skymiljø og DevOps-praksisar.
Bash støttar variabeltilordning utan ein føregåande typeerklæring. For eksempel:
name="World"
echo "Hello, $name!"
Bash inkluderer betinga utsagn som if-else for flytkontroll:
if [ "$name" == "World" ]; then
echo "Hello, World!"
else
echo "Hello, Stranger!"
fi
Bash tillèt løkker som for
, while
og until
. Her er eit eksempel på ein for
-løkke:
for i in {1..5}; do
echo "Iterasjon $i"
done
Du kan definere og kalle funksjonar i Bash:
greet() {
echo "Hello, $1!"
}
greet "User"
Bash støttar kommandosubstitusjon ved å bruke bakoverapostrofar eller $(...)
:
today=$(date)
echo "I dag er $today"
Bash støttar ein-dimensjonale indekserte array:
fruits=("eple" "banan" "kirsebær")
echo "Første frukt: ${fruits[0]}"
Bash gir funksjonar for strengmanipulering som delstrenguttrekking:
text="Hello World"
echo ${text:6:5} # Gir "World"
Bash tillèt enkle aritmetiske operasjonar ved å bruke $((...))
:
result=$((5 + 3))
echo "Resultatet er $result"
Du kan omdirigere inndata og utdata i Bash:
echo "Hello" > output.txt
Bash tillèt bruk av heredokument for fleire linjers inndata, noko som gjer det enkelt å sende fleire linjer med strenger til kommandoar:
cat << EOF
Dette er ein fleire linjers streng.
EOF
Sjølv om Bash-skript kan redigerast i kva som helst tekstredigerar, tilbyr fleire integrerte utviklingsmiljø (IDE-ar) støtte for Bash. Desse inkluderer Visual Studio Code, Atom, Sublime Text og Eclipse med pluginar.
Bash-skript blir tolka i staden for å bli kompilert, med Bash-tolken sjølv som utfører skripta. Kommanden for å køyre eit skript er:
bash script.sh
For å bygge prosjekt er det vanleg å lage ein Makefile ved å bruke make
, eller bruke Bash-skript for å automatisere oppgåver som installasjon eller distribusjon.
Bash blir brukt i ulike domener, inkludert:
Bash finn sine næraste samanlikningar i språk som Python og Perl for skripting, medan det kan samanliknast med meir generelle språk som C eller Java i spesifikke bruksområde.
Bash utmerkar seg i kommandolinjeinteraksjonar og systemoppgåver, medan Python er meir allsidig for komplekse programmeringsoppgåver, databehandling og applikasjonsutvikling. Python tilbyr eit rikt standardbibliotek som gjer det eigna for større applikasjonar.
Perl blir ofte brukt til tekstbehandling og systemadministrasjonsoppgåver; likevel har det meir kompleks syntaks samanlikna med Bash. Bash er fokusert på kommandoutføring, medan Perl er meir programmeringssentra.
JavaScript er hovudsakleg eit klientside webspråk, medan Bash fungerer som ein kommandotolk og skriptbehandlar for systemoperasjonar. Bash er ikkje eigna for webutvikling, medan JavaScript utmerkar seg på dette området.
Når du oversetter Bash-skript til andre språk, sørg for å validere kommandane sine ekvivalentar og sjekke for avhengigheiter til systemnivåfunksjonar. Verktøy som sh2py
eksisterer som kan konvertere skallskript til Python, men dei semantiske forskjellane bør håndterast nøye.
Det finst nokre verktøy tilgjengelege for kilde-til-kilde oversetting, inkludert: