Bash -skript kan användas för olika ändamål, till exempel att köra ett skalkommando, köra flera kommandon tillsammans, anpassa administrativa uppgifter, utföra uppgiftsautomatisering etc. Så kunskap om grundläggande programmering är viktig för varje Linux -användare. Den här artikeln hjälper dig att få grundtanken om bash programmering. De flesta vanliga operationerna för bash scripting förklaras med mycket enkla exempel här.
Följande ämnen för bash programmering behandlas i denna artikel.
- Hej världen
- Echo Command
- Kommentarer
- Flerradig kommentar
- Medan Loop
- För Loop
- Få användarinmatning
- If uttalande
- Och skick om uttalande
- Eller Villkor om uttalande
- Annars om och annars skick
- Skickets skick
- Hämta argument från kommandoraden
- Hämta argument från kommandoraden med namn
- Kombinera två strängar i en variabel
- Skaffa Substring of Strings
- Lägg till 2 nummer i en variabel
- Skapa en funktion
- Använd funktionsparametrar
- Skicka returvärde från skript
- Skapa katalog
- Skapa katalog genom att kontrollera existensen
- Läs en fil
- Ta bort en fil
- Lägg till filen
- Testa om filen finns
- Skicka e -postexempel
- Hämta aktuellt datum
- Vänta Kommando
- Sömnkommando
Skapa och kör första BASH -programmet:
Du kan köra bash -skript från terminalen eller genom att köra någon bash -fil. Kör följande kommando från terminalen för att köra en mycket enkel bash -sats. Utdata från kommandot kommer att vara ' Hej världen '.
$kastade ut 'Hej världen'
Öppna valfri redigerare för att skapa en bash -fil. Här, nano editor används för att skapa filen och filnamnet är inställt som ' First.sh ’
$nanoFirst.sh
Lägg till följande bash -skript i filen och spara filen.
#!/bin/bashkastade ut 'Hej världen'
Du kan köra bash -fil på två sätt. Ett sätt är att använda bash -kommandot och ett annat är genom att ställa in execute -behörighet för att bash -filen och köra filen. Båda sätten visas här.
$våldsamt slagFirst.shEller,
$chmoda+x First.sh$./First.sh
Användning av echo -kommando:
Du kan använda echo -kommandot med olika alternativ. Några användbara alternativ nämns i följande exempel. När du använder ' kastade ut '-Kommando utan något alternativ läggs en ny rad till som standard. '-N' alternativet används för att skriva ut text utan ny rad och '-Och' alternativet används för att ta bort backslash -tecken från utdata. Skapa en ny bash -fil med ett namn, ' echo_example.sh ’Och lägg till följande skript.
#!/bin/bashkastade ut 'Skriva ut text med ny rad'
kastade ut -n 'Skriva ut text utan ny rad'
kastade ut -Och ' nTa bort tbackslash ttecken n'
Kör filen med kommandot bash.
$våldsamt slagecho_example.sh
Användning av kommentar:
'#' symbolen används för att lägga till enradig kommentar i bash -skript. Skapa en ny fil med namnet ' comment_example.sh ’ och lägg till följande skript med enradig kommentar.
#!/bin/bash# Lägg till två numeriska värden
((belopp=25+35))
#Skriv ut resultatet
kastade ut $ summa
Kör filen med kommandot bash.
$våldsamt slagcomment_example.sh
Användning av flera rader:
Du kan använda flerradig kommentar i bash på olika sätt. Ett enkelt sätt visas i följande exempel. Skapa en ny bash som heter 'Multiline-comment.sh' och lägg till följande skript. Här, ':' och ' symboler används för att lägga till flerlinjeskommentarer i bash -skript. Detta följande skript kommer att beräkna kvadraten på 5.
#!/bin/bash:'
Följande skript beräknar
kvadratvärdet för talet, 5.
'
((område=5*5))
kastade ut $ område
Kör filen med kommandot bash.
$våldsamt slagmultiline-comment.sh
Du kan kontrollera följande länk för att veta mer om användningen av bash -kommentar.
https://linuxhint.com/bash_comments/
Använda While Loop:
Skapa en bash -fil med namnet, 'While_example.sh', att veta användningen av medan slinga. I exemplet, medan loop kommer att iterera för 5 gånger. Värdet av räkna variabeln ökar med 1 i varje steg. När värdet av räkna variabel kommer 5 då medan loop kommer att avslutas.
#!/bin/bashgiltig=Sann
räkna=1
medan [ $ giltigt ]
do
kastade ut $ räkna
om [ $ räkna -ekv 5 ];
sedan
ha sönder
vara
((räkna ++))
Gjort
Kör filen med kommandot bash.
$våldsamt slagmedan_exempel.sh
Du kan kontrollera följande länk för att veta mer om användningen av while loop.
https://linuxhint.com/bash- while-loop-examples/
Använd för For Loop:
Det grundläggande för loop -deklaration visas i följande exempel. Skapa en fil med namnet ‘ för_exempel.sh ’Och lägg till följande skript med för slinga. Här, för loop kommer att iterera för 10 gånger och skriv ut alla värden för variabeln, disken på en rad.
#!/bin/bashför (( disken=10; disken>0; disken--))
do
kastade ut -n '$ räknare'
Gjort
printf ' n'
Kör filen med kommandot bash.
$våldsamt slagför_exempel.sh
Du kan använda för loop för olika ändamål och sätt i ditt bash -skript. Du kan kontrollera följande länk för att veta mer om användningen av for loop.
https://linuxhint.com/bash-for-loop-examples/
Få användarinmatning:
' läsa 'Kommando används för att ta in input från användare i bash. Skapa en fil med namnet ‘ user_input.sh ’Och lägg till följande skript för att ta input från användaren. Här kommer ett strängvärde att tas från användaren och visa värdet genom att kombinera annat strängvärde.
#!/bin/bashkastade ut 'Ange ditt namn'
läsanamn
kastade ut 'Välkommen$ namntill LinuxHint '
Kör filen med kommandot bash.
$våldsamt slaguser_input.sh
Du kan kontrollera följande länk för att veta mer om användningen av användarinmatning.
https://linuxhint.com/bash-script-user-input/
Använda if -uttalande:
Du kan använda if -tillstånd med enstaka eller flera villkor. Start- och slutblock för detta uttalande definieras av 'om' och 'vara' . Skapa en fil med namnet ‘ simple_if.sh 'Med följande skript för att veta användningen om uttalande i bash. Här, 10 tilldelas variabeln, n . om värdet av $ n är mindre än 10 blir utmatningen Det är ett ettsiffrigt nummer , annars blir utmatningen Det är ett tvåsiffrigt tal . För jämförelse, '-Lt' används här. För jämförelse kan du också använda '-Eq' för jämlikhet , '-född' för inte jämlikhet och '-Gt' för större än i bash script.
#!/bin/bashn=10
om [ $ n -lt 10 ];
sedan
kastade ut 'Det är ett ettsiffrigt nummer'
annan
kastade ut 'Det är ett tvåsiffrigt tal'
vara
Kör filen med kommandot bash.
$våldsamt slagsimple_if.sh
Använda if -sats med AND logik:
Olika typer av logiska villkor kan användas i if -sats med två eller flera villkor. Hur du kan definiera flera villkor i if -sats med OCH logik visas i följande exempel. '&&' används för att ansöka OCH logik av om påstående. Skapa en fil med namnet 'If_with_AND.sh' för att kontrollera följande kod. Här är värdet av Användarnamn och Lösenord variabler kommer att tas från användaren och jämföras med ' administration 'Och' hemlighet ’. Om båda värdena matchar kommer utgången att vara giltig användare , annars blir utmatningen ogiltig användare .
! /am/våldsamt slagkastade ut 'Skriv in ditt användarnamn'
läsaAnvändarnamn
kastade ut 'Skriv in lösenord'
läsaLösenord
om [[ ( $ användarnamn=='administration' && $ lösenord=='hemlighet' ) ]];sedan
kastade ut 'giltig användare'
annan
kastade ut 'ogiltig användare'
vara
Kör filen med kommandot bash.
$våldsamt slagom_med_AND.sh
Använda if -sats med OR -logik:
' || ’Används för att definiera ELLER logik in om skick. Skapa en fil med namnet 'If_with_OR.sh' med följande kod för att kontrollera användningen av ELLER logik av om påstående. Här är värdet av n kommer att tas från användaren. Om värdet är lika med femton eller Fyra fem då blir utmatningen Du vann spelet , annars blir utmatningen Du förlorade spelet .
#!/bin/bashkastade ut 'Ange valfritt nummer'
läsan
om [[ ( $ n -ekv femton || $ n -ekv Fyra fem ) ]]
sedan
kastade ut 'Du vann spelet'
annan
kastade ut 'Du förlorade spelet'
vara
Kör filen med kommandot bash.
$våldsamt slagif_with_OR.sh
Använda annat if -uttalande:
Användningen av annat om tillståndet är lite annorlunda i bash än annat programmeringsspråk. ' elif ’Används för att definiera annat om skick i bash. Skapa en fil med namnet ' elseif_example.sh ’Och lägg till följande skript för att kontrollera hur annat om definieras i bash script.
#!/bin/bashkastade ut 'Ange ditt lyckonummer'
läsan
om [ $ n -ekv 101 ];
sedan
kastade ut 'Du fick 1: a pris'
elif [ $ n -ekv 510 ];
sedan
kastade ut 'Du fick 2: a pris'
elif [ $ n -ekv 999 ];
sedan
kastade ut 'Du fick 3: e pris'
annan
kastade ut 'Förlåt, försök till nästa gång'
vara
Kör filen med kommandot bash.
$våldsamt slagelseif_example.sh
Använda fallbesked:
Fall uttalande används som alternativ till if-elseif-else påstående. Start- och slutblocket för detta uttalande definieras av ' fall 'Och' esac ’. Skapa en ny fil med namnet ' case_example.sh ’Och lägg till följande skript. Utdata från följande skript kommer att vara samma som föregående annat om exempel.
#!/bin/bashkastade ut 'Ange ditt lyckonummer'
läsan
fall $ n i
101)
kastade ut kastade ut 'Du fick 1: a pris' ;;
510)
kastade ut 'Du fick 2: a pris' ;;
999)
kastade ut 'Du fick 3: e pris' ;;
*)
kastade ut 'Förlåt, försök till nästa gång' ;;
esac
Kör filen med kommandot bash.
$våldsamt slagcase_example.sh
Hämta argument från kommandoraden:
Bash -skript kan läsa inmatning från kommandoradsargument som andra programmeringsspråk. Till exempel, $ 1 och $ 2 variabel används för att läsa första och andra kommandoradsargument. Skapa en fil med namnet command_line.sh och lägg till följande skript. Två argumentvärden läses av följande skript och skriver ut det totala antalet argument och argumentvärdena som utdata.
#!/bin/bashkastade ut 'Totala argument: $#'
kastade ut 'Första argumentet = $ 1'
kastade ut '2: a argumentet = $ 2'
Kör filen med kommandot bash.
$våldsamt slagcommand_line.sh Linux Tips
Du kan kontrollera följande länk för att veta mer om användningen av kommandoradsargument.
https://linuxhint.com/command_line_arguments_bash_script/
Hämta argument från kommandoraden med namn:
Hur du kan läsa kommandoradsargument med namn visas i följande skript. Skapa en fil med namnet ' command_line_names.sh ’ och lägg till följande kod. Här två argument, X och OCH läses av detta manus och skriver ut summan av X och Y.
#!/bin/bashförargi '[e -postskyddad]'
do
index= $(kastade ut $arg | skära -f1 -d=)
timmar= $(kastade ut $arg | skära -f2 -d=)
fall $ index i
X) x=$ timmar;;
OCH) och=$ timmar;;
*)
esac
Gjort
((resultat= x + y))
kastade ut 'X + Y =$ resultat'
Kör filen med kommandot bash och med två kommandoradsargument.
$våldsamt slagcommand_line_namesX=Fyra fem OCH=30
Kombinera strängvariabler:
Du kan enkelt kombinera strängvariabler i bash. Skapa en fil med namnet string_combine.sh och lägg till följande skript för att kontrollera hur du kan kombinera strängvariabler i bash genom att placera variabler tillsammans eller använda '+' operatör.
#!/bin/bashsträng1='Linux'
string2='Antydan'
kastade ut '$ string1$ string2'
string3=$ string1+$ string2
string3+='är en bra självstudiebloggsajt'
kastade ut $ string3
Kör filen med kommandot bash.
$våldsamt slagstring_combine.sh
Skaffa delsträng för String:
Precis som andra programmeringsspråk har bash ingen inbyggd funktion för att minska värdet från strängdata. Men du kan utföra uppgiften att understränga på ett annat sätt i bash som visas i följande skript. För att testa manuset, skapa en fil med namnet ' substring_example.sh 'Med följande kod. Här är värdet, 6 indikerar startpunkten från var delsträngen kommer att börja och 5 anger längden på delsträngen.
#!/bin/bashStr='Lär dig Linux från LinuxHint'
subStr=$ {Str: 6: 5}
kastade ut $ subStr
Kör filen med kommandot bash.
$våldsamt slagsubstring_example.sh
Lägg till två nummer:
Du kan utföra de aritmetiska operationerna i bash på olika sätt. Hur du kan lägga till två heltal i bash med dubbla parenteser visas i följande skript. Skapa en fil med namnet ‘ add_numbers.sh 'Med följande kod. Två heltalsvärden tas från användaren och skrivs ut resultatet av tillägget.
#!/bin/bashkastade ut 'Ange första nummer'
läsax
kastade ut 'Ange andra nummer'
läsaoch
(( belopp= x + y))
kastade ut 'Resultatet av tillägg =$ summa'
Kör filen med kommandot bash.
$våldsamt slagadd_numbers.sh
Du kan kontrollera följande länk för att veta mer om bash aritmetik.
https://linuxhint.com/bash_arithmetic_operations/
Skapa funktion:
Hur du kan skapa en enkel funktion och anropa funktionen visas i följande skript. Skapa en fil med namnet ‘ function_example.sh ’Och lägg till följande kod. Du kan bara kalla vilken funktion som helst utan att använda någon parentes i bash script.
#!/bin/bashfungeraF1()
{
kastade ut 'Jag gillar bash programmering'
}
F1
Kör filen med kommandot bash.
$våldsamt slagfunction_example.sh
Skapa funktion med parametrar:
Bash kan inte deklarera funktionsparameter eller argument vid funktionsdeklarationen. Men du kan använda parametrar i funktion genom att använda en annan variabel. Om två värden skickas vid funktionstillfället används $ 1 och $ 2 variabel för att läsa värdena. Skapa en fil med namnet ‘ funktion | _parameter.sh ’Och lägg till följande kod. Här är funktionen, ' Rektangel_område ' kommer att beräkna ytan av en rektangel baserat på parametervärdena.
#!/bin/bashRektangel_område() {
område= $(($ 1 * $ 2))
kastade ut 'Området är:$ område'
}
Rektangel_område10 tjugo
Kör filen med kommandot bash.
$våldsamt slagfunction_parameter.sh
Passera returvärde från funktion:
Bash -funktionen kan passera både numeriska och strängvärden. Hur du kan skicka ett strängvärde från funktionen visas i följande exempel. Skapa en fil med namnet ' function_return.sh ’Och lägg till följande kod. Funktionen, hälsning() returnerar ett strängvärde till variabeln, timmar som skrivs ut senare genom att kombinera med annan sträng.
#!/bin/bashfungerahälsning() {
sid='Hej,$ namn'
kastade ut $ str
}
kastade ut 'Ange ditt namn'
läsanamn
timmar= $(hälsning)
kastade ut 'Funktionens returvärde är$ timmar'
Kör filen med kommandot bash.
$våldsamt slagfunction_return.sh
Du kan kontrollera följande länk för att veta mer om användningen av bash -funktionen.
https://linuxhint.com/return-string-bash-functions/
Gör katalog:
Bash använder ' mkdir 'Kommando för att skapa en ny katalog. Skapa en fil med namnet ‘ make_directory.sh ’Och lägg till följande kod för att ta ett nytt katalognamn från användaren. Om katalognamnet inte finns på den aktuella platsen kommer det att skapa katalogen, annars visar programmet fel.
#!/bin/bashkastade ut 'Ange katalognamn'
läsanewdir
''mkdir $ newdir''
Kör filen med kommandot bash.
$våldsamt slagmake_directory.sh
Skapa katalog genom att kontrollera existens:
Om du vill kontrollera förekomsten av katalog på den aktuella platsen innan du kör ' mkdir '-Kommando kan du använda följande kod. ’-D 'Alternativet används för att testa att en viss katalog finns eller inte. Skapa en fil med namnet ' directory_exist.sh ’ och lägg till följande kod för att skapa en katalog genom att kontrollera existensen.
#!/bin/bashkastade ut 'Ange katalognamn'
läsandr
om [ -d '$ ndir' ]
sedan
kastade ut 'Katalog finns'
annan
''mkdir $ ndir''
kastade ut 'Katalog skapad'
vara
Kör filen med kommandot bash.
$våldsamt slagdirectory_exist.sh
Du kan kolla följande länk för att veta mer om katalogskapande.
https://linuxhint.com/bash_mkdir_not_existent_path/
Läs en fil:
Du kan läsa vilken fil som helst rad för rad i bash med hjälp av loop. Skapa en fil med namnet ' read_file.sh 'Och lägg till följande kod för att läsa en befintlig fil med namnet' bok.txt '.
#!/bin/bashfil='bok.txt'
medan läsalinje;do
kastade ut $ rad
Gjort < $ fil
Kör filen med kommandot bash.
$våldsamt slagread_file.shKör följande kommando för att kontrollera originalinnehållet i ' bok.txt ’Fil.
$kattbok.txt
Du kan kontrollera följande länk för att veta de olika sätten att läsa filen.
https://linuxhint.com/read_file_line_by_line_bash/
Ta bort en fil:
' rm '-Kommandot används i bash för att ta bort alla filer. Skapa en fil med namnet ‘ delete_file.sh 'Med följande kod för att ta filnamnet från användaren och ta bort. Här, '-I' alternativet används för att få tillstånd från användaren innan filen tas bort.
#!/bin/bashkastade ut 'Ange filnamn för att ta bort'
läsafn
rm -i $ fn
Kör filen med kommandot bash.
$ls$våldsamt slagdelete_file.sh
$ls
Lägg till i filen:
Ny data kan läggas till i en befintlig fil med '>>' operatör i bash. Skapa en fil med namnet ‘Append_file.sh ’Och lägg till följande kod för att lägga till nytt innehåll i slutet av filen. Här, ' Lär dig Laravel 5 'Kommer att läggas till vid' book.txt ’ filen efter att manuset har körts.
#!/bin/bashkastade ut 'Innan du lägger till filen'
kattbok.txt
kastade ut 'Lär dig Laravel 5'>>bok.txt
kastade ut 'Efter att ha lagt till filen'
kattbok.txt
Kör filen med kommandot bash.
$våldsamt slagappend_file.sh
Testa om filen finns:
Du kan kontrollera att det finns en fil i bash med '-Och' eller '-F' alternativ. '-F' alternativet används i följande skript för att testa filens existens. Skapa en fil med namnet ' file_exist.sh ’Och lägg till följande kod. Här kommer filnamnet att passera från kommandoraden.
#!/bin/bashfilnamn=$ 1
om [ -f '$ filnamn' ];sedan
kastade ut 'Fil existerar'
annan
kastade ut 'Fil existerar inte'
vara
Kör följande kommandon för att kontrollera att filen finns. Här, bok.txt filen finns och bok2.txt finns inte på den aktuella platsen.
$ls$våldsamt slagfile_exist.sh book.txt
$våldsamt slagfile_exist.sh book2.txt
Skicka epost:
Du kan skicka e -post med ' post 'Eller' skicka brev ’Kommando. Innan du använder dessa kommandon måste du installera alla nödvändiga paket. Skapa en fil med namnet ' mail_example.sh ’Och lägg till följande kod för att skicka e -postmeddelandet.
#!/bin/bashMottagare= admin@exempel.com
Ämne= Hälsning
Meddelande= Välkommen till vår webbplats
''post-s $ Ämne $ Mottagare <<< $ Meddelande''
Kör filen med kommandot bash.
$våldsamt slagmail_example.sh
Hämta aktuellt datum:
Du kan få det aktuella systemdatumet och tidsvärdet med ` datum `kommando. Varje del av datum- och tidsvärdet kan analyseras med ' Y ',' m ',' d ',' H ',' M ' och ' S ’ . Skapa en ny fil med namnet ' date_parse.sh ’ och lägg till följande kod för att skilja dag, månad, år, timme, minut och andra värden.
#!/bin/bashÅr=''datum+%OCH''
Månad=''datum+%m''
Dag=''datum+%d''
Timme=''datum+%H''
Minut=''datum+%M''
Andra=''datum+%S''
kastade ut ''datum''
kastade ut 'Aktuellt datum är:$ Dag-$ Månad-$ År'
kastade ut 'Aktuell tid är:$ Timme:$ Minut:$ Second'
Kör filen med kommandot bash.
$våldsamt slagdate_parse.sh
Vänta kommando:
vänta är ett inbyggt kommando för Linux som väntar på att slutföra alla körprocesser. vänta kommando används med ett visst process -id eller jobb -id. Om inget process -id eller jobb -ID ges med väntekommando väntar det på att alla nuvarande underordnade processer ska slutföras och returnerar utgångsstatus. Skapa en fil med namnet ‘ wait_example.sh ’ och lägg till följande skript.
#!/bin/bashkastade ut 'Vänta kommando' &
process_id=$!
vänta $ process_id
kastade ut 'Avslutad med status $?'
Kör filen med kommandot bash.
$våldsamt slagwait_example.sh
Du kan kolla följande länk för att veta mer om väntarkommando.
Sömnkommando:
När du vill pausa utförandet av ett kommando under en viss tidsperiod kan du använda det sömn kommando. Du kan ange förseningsbeloppet med sekunder (s), minuter (m), timmar (h) och dagar (d). Skapa en fil med namnet 'Sleep_example.sh' och lägg till följande skript. Detta skript väntar i 5 sekunder efter körning.
#!/bin/bashkastade utVäntaför 5sekunder
sömn 5
kastade utAvslutad
Kör filen med kommandot bash.
$våldsamt slagsleep_example.sh
Du kan kontrollera följande länk för att veta mer om sömnkommando.
https://linuxhint.com/sleep_command_linux/
Hoppas, efter att ha läst den här artikeln har du ett grundläggande koncept om bash scripting språk och du kommer att kunna tillämpa dem baserat på dina krav.