Bash-skript är praktiska för att automatisera uppgifter, och du kommer att upptäcka att de är bra för att bygga enkla kommandoradsapplikationer. Bash-skalet tolkar Bash-skript, så du behöver inte installera några beroenden för att skriva och köra dem. Bash-skript är också portabla eftersom de flesta Unix-baserade operativsystem använder samma skaltolk.
Kunskap om Bash-skript är ett måste för alla utvecklare, speciellt om du arbetar med Unix-baserade system.
Variabler i Bash
Bash variabler är skiftlägeskänsliga. För att deklarera variabler, använd ett likhetstecken (=) med namnet till vänster och värdet till höger:
STATE=Washington
Värdet som denna deklaration tilldelar STAT är ett enda ord. Om du behöver mellanslag i ditt värde, använd citattecken runt det:
STATE="Norra Arizona"
Du måste använda ett dollartecken ($) prefix till referensvariabler i andra variabler eller uttalanden:
STATE=Washington
LOCATION="Min plats är $STATE"
Utskriftsvärden i Bash
Det finns flera sätt att skriva ut variabler i Bash. Du kan använda
eko kommando för grundläggande utdata eller C-stilen printf kommando för strängformatering.STATE=Washington
LOCATION="Min plats är $STATE"
eko$LOCATION
Efter att ha deklarerat STAT variabel, definierar detta skript PLATS genom att hänvisa till STATE. If använder sedan eko för att skriva ut det slutliga värdet för variabeln LOCATION.
De printf nyckelord låter dig använda formateringsverb för att mata ut data. Strängformateringsverben liknar de i C och Go men med begränsade verb.
Verb | Funktionalitet |
---|---|
%c | skriver ut enstaka tecken |
%o | skriver ut oktadecimaler |
%s | skriver ut strängar, oberoende av hölje |
%x | skriver ut gemener hexadecimala |
%X | skriver ut hexadecimala versaler |
%d | skriver ut heltal |
%e | skriver ut vetenskapliga begrepp flyter med gemener |
%E | skriver ut vetenskapliga begrepp som flyter med versaler |
%f | skriver ut flyttalsnummer |
%% | skriver ut en enstaka procentsymbol. |
Här är ett exempel på hur du använder ett verb med skriva ut nyckelord.
STATE=Lagos
printf "Min plats är %s" $STATE
De printf funktion skulle ersätta STAT variabel i läget för %s verb, och utgången skulle vara "My Location is Lagos".
Du kan göra kommentarer i Bash med hash eller pund (#) symbol. Skalet ignorerar automatiskt kommentarer.
#!/bin/bash
# STATE=Washington
# LOCATION="Min plats är $STATE"
Det finns inga flerradiga kommentarer. De flesta IDE: er och textredigerare låter dig kommentera med genvägen Ctrl/Command + snedstreck(/). Du bör kunna använda genvägen för att skapa flera enradiga kommentarer.
Tar emot användarinmatning i Bash
Som många andra programmeringsspråk kan du få användarinput i Bash för att göra dina program/skript mer interaktiva. Du kan använda läsa kommando för att begära användarens input.
läsa svar
I det här fallet svar variabeln kommer att hålla användarens indata vid leverans.
echo "Vad vill du?:"
läs svaret
echo $respons
Användarinmatningsbegäran kommer att finnas på en ny rad i exemplet ovan.
Du kan lägga till -n flagga till eko print statement för att behålla raden där användaren anger input.
echo -n "Vad vill du."
läs svaret
echo $respons
Deklarerar Arrays i Bash
Arrayer i Bash är precis som de flesta språk. Du kan deklarera en matrisvariabel i Bash genom att ange elementen inom parentes.
Länder=('USA' 'Ryssland' 'Ukraina', "England", "Taiwan", "Kina")
Att komma åt en array via referens till variabelnamnet skulle hämta det första elementet. Du kan komma åt hela arrayen genom att använda asterisken som index.
echo ${Countries[*]}
Du kan också ange indexet för arrayen för att komma åt ett specifikt element. Indexet för en array börjar på noll.
eko "${Countries[4]}"
Villkorliga uttalanden i Bash
Bash tillhandahåller villkor för beslutsfattande i program.
Här är anatomin för ett om-annat-uttalande i Bash. Du måste använda semikolon för att ange slutet av villkoret.
om [[ skick ]]; sedan
eko uttalande 1
elif [[skick ]]; sedan
eko uttalande 2
annan [[skick ]]; sedan
eko uttalande3
fi
Du måste avsluta varje om uttalande med fi nyckelord.
om [ 1 == 2 ]; sedan
eko ett
elif [ 2 == 3 ]; sedan#annat-om
eko två
annan [ 4 > 3 ];
eko "rätt, 3"
fi
Du kan använda fallsatser i dina Bash-program med hjälp av fall nyckelord. Du måste ange mönstret följt av slutparenteser före uttalandet.
CITY=Lagos
fall$CITYi
"Washington") # mönster
eko "Amerikas förenta stater" # påstående
;; # slutet av ett ärende
"Lagos" | "Abuja")
eko "Nigeria"
;;
"Johannesburg" | "Kapstaden")
eko "Sydafrika"
;;
*) # standardmönster
eko "Antarktis" # standardsats
;;
esac# slutet av ärendet
Du kan definiera standardfallet med asterisk (*)-tecknet som mönstret. Fallutlåtanden måste sluta med esac nyckelord.
Slingor i Bash
Beroende på dina behov kan du använda en while-loop, range for-loop eller en C-style för loop för återkommande operationer.
Här är ett exempel på C-stilen for-loop. For-loopar måste sluta med Gjort nyckelord, och du måste avsluta for-satsen med ett semikolon följt av do nyckelord.
för ((a = 0; a < 10; a+2)); do
eko$a
Gjort
Utbudet för loop är praktiskt för att arbeta med filer och många andra operationer. Du måste använda i nyckelord med intervallet for-loop.
för i i {1..7}; do
eko$1
Gjort
Här är en enkel oändlig loop för att demonstrera Bash medan loopar i aktion.
namn=1
medan [ 1 - le 5 ] # medan 1 < 5
do
eko$namn
Gjort
De -le i villkorssatsen är den binära operatorn för mindre än.
Funktioner i Bash
Du behöver inga nyckelord för att deklarera funktioner i Bash. Du kan deklarera funktioner med namnet och sedan parenteser före funktionens kropp.
print_working_directory() {
eko$PWD#ringar PWD-kommandot från skriptet
}
eko "Du är i $(print_working_directory)"
Funktioner kan returnera variabler i Bash. Allt du behöver är lämna tillbaka nyckelord.
print_working_directory() {
lämna tillbaka$PWD
}
De print_working_directory funktion returnerar arbetskatalogen för filen.
Du kan skriva skalskript på andra språk
Bash är inte det enda språket du kan använda för att interagera med ditt operativsystems skal eller bygga kommandoradsapplikationer. Du kan använda många andra språk som Go, Python, Ruby och Rust.
Många operativsystem har Python3 förinstallerat, och Python är ett vanligt språk. Om du behöver ännu mer funktionalitet än vad Bash-skript kan erbjuda, överväg att använda Python.