Bash -scripts kan bruges til forskellige formål, såsom at udføre en shell -kommando, køre flere kommandoer sammen, tilpasse administrative opgaver, udføre opgaveautomatisering osv. Så kendskab til bash programmering er vigtigt for hver Linux -bruger. Denne artikel hjælper dig med at få den grundlæggende idé om bash -programmering. De fleste af de almindelige operationer ved bash scripting forklares med meget enkle eksempler her.
Følgende emner for bash programmering er dækket i denne artikel.
- Hej Verden
- Ekkokommando
- Kommentarer
- Kommentar på flere linjer
- Mens Loop
- Til Loop
- Få brugerinput
- Hvis erklæring
- Og tilstand hvis erklæring
- Eller Betingelse hvis erklæring
- Ellers hvis og ellers tilstand
- Sagens tilstand
- Hent argumenter fra kommandolinjen
- Hent argumenter fra kommandolinje med navne
- Kombiner to strenge i en variabel
- Få Substring of Strings
- Tilføj 2 tal til en variabel
- Opret en funktion
- Brug funktionsparametre
- Send returværdi fra script
- Lav bibliotek
- Lav bibliotek ved at kontrollere eksistensen
- Læs en fil
- Slet en fil
- Tilføj til fil
- Test om filen findes
- Send eksempel på e -mail
- Hent aktuel dato
- Vent kommando
- Sleep -kommando
Opret og udfør første BASH -program:
Du kan køre bash -script fra terminalen eller ved at udføre en bash -fil. Kør følgende kommando fra terminalen for at udføre en meget simpel bash -sætning. Udgangen af kommandoen vil være ' Hej Verden '.
$smed ud 'Hej Verden'
Åbn en hvilken som helst editor for at oprette en bash -fil. Her, nano editor bruges til at oprette filen, og filnavn er angivet som ' First.sh ’
$nanoFirst.sh
Tilføj følgende bash -script til filen, og gem filen.
#!/bin/bashsmed ud 'Hej Verden'
Du kan køre bash -fil på to måder. En måde er ved at bruge bash -kommando, og en anden er ved at angive execute -tilladelse til at bash -fil og køre filen. Begge måder er vist her.
$bashFirst.shEller,
$chmoda+x First.sh$./First.sh
Brug af ekkokommando:
Du kan bruge ekkokommando med forskellige muligheder. Nogle nyttige muligheder er nævnt i det følgende eksempel. Når du bruger ‘ smed ud '-Kommando uden mulighed, tilføjes der som standard en ny linje. '-N' indstilling bruges til at udskrive enhver tekst uden ny linje og '-Og' indstilling bruges til at fjerne backslash -tegn fra output. Opret en ny bash -fil med et navn, ' echo_example.sh 'Og tilføj følgende script.
#!/bin/bashsmed ud 'Udskrivning af tekst med ny linje'
smed ud -n 'Udskrivning af tekst uden ny linje'
smed ud -Og ' nFjernelse tomvendt skråstreg ttegn n'
Kør filen med kommandoen bash.
$bashecho_example.sh
Brug af kommentar:
'#' symbol bruges til at tilføje kommentar til en enkelt linje i bash script. Opret en ny fil med navnet ' comment_example.sh ’ og tilføj følgende script med kommentar til en enkelt linje.
#!/bin/bash# Tilføj to numeriske værdier
((sum=25+35))
#Udskriv resultatet
smed ud $ sum
Kør filen med kommandoen bash.
$bashcomment_example.sh
Brug af multi-line kommentar:
Du kan bruge flere linjers kommentarer i bash på forskellige måder. En enkel måde er vist i det følgende eksempel. Opret en ny bash ved navn, 'Multiline-comment.sh' og tilføj følgende script. Her, ':' og ' symboler bruges til at tilføje flerlinjes kommentar i bash script. Dette følgende script beregner kvadratet på 5.
#!/bin/bash:'
Følgende script beregner
kvadratets værdi af tallet, 5.
'
((areal=5*5))
smed ud $ område
Kør filen med kommandoen bash.
$bashmultiline-comment.sh
Du kan kontrollere følgende link for at vide mere om brugen af bash -kommentar.
https://linuxhint.com/bash_comments/
Brug af While Loop:
Opret en bash -fil med navnet, 'While_example.sh', at kende brugen af mens sløjfe. I eksemplet, mens loop vil iterere for 5 gange. Værdien af tælle variabel øges med 1 i hvert trin. Når værdien af tælle variabel vil 5 derefter mens loop slutter.
#!/bin/bashgyldig=sand
tælle=1
mens [ $ gyldig ]
gøre
smed ud $ tæller
hvis [ $ tæller -ækv 5 ];
derefter
pause
være
((tæl ++))
Færdig
Kør filen med kommandoen bash.
$bashmens_eksempel.sh
Du kan kontrollere følgende link for at vide mere om brugen af while loop.
https://linuxhint.com/bash- while-loop-examples/
Brug af For Loop:
Det basale til loop -deklaration er vist i følgende eksempel. Opret en fil med navnet ' for_eksempel.sh 'Og tilføj følgende script vha til sløjfe. Her, til loop vil iterere for 10 gange og udskriv alle værdier af variablen, tæller i en enkelt linje.
#!/bin/bashtil (( tæller=10; tæller>0; tæller--))
gøre
smed ud -n '$ tæller'
Færdig
printf ' n'
Kør filen med kommandoen bash.
$bashfor_eksempel.sh
Du kan bruge til loop til forskellige formål og måder i dit bash script. Du kan kontrollere følgende link for at vide mere om brugen af for loop.
https://linuxhint.com/bash-for-loop-examples/
Få brugerinput:
' Læs 'Kommando bruges til at tage input fra bruger i bash. Opret en fil med navnet ' user_input.sh 'Og tilføj følgende script til at tage input fra brugeren. Her vil en strengværdi blive taget fra brugeren og vise værdien ved at kombinere anden strengværdi.
#!/bin/bashsmed ud 'Indtast dit navn'
Læsnavn
smed ud 'Velkommen$ navntil LinuxHint '
Kør filen med kommandoen bash.
$bashuser_input.sh
Du kan kontrollere følgende link for at vide mere om brugen af brugerinput.
https://linuxhint.com/bash-script-user-input/
Brug af if -sætning:
Du kan bruge if -tilstand med enkelte eller flere betingelser. Start- og slutblok for denne erklæring defineres af 'hvis' og 'være' . Opret en fil med navnet ' simple_if.sh 'Med følgende script for at kende brugen hvis udsagn i bash. Her, 10 er tildelt variablen, n . hvis værdien af $ n er mindre end 10, vil output være Det er et etcifret tal , ellers bliver output Det er et tocifret tal . Til sammenligning, '-Lt' bruges her. Til sammenligning kan du også bruge '-Eq' til lighed , '-Født' til ikke ligestilling og '-Gt' til bedre end i bash script.
#!/bin/bashn=10
hvis [ $ n -lt 10 ];
derefter
smed ud 'Det er et etcifret tal'
andet
smed ud 'Det er et tocifret tal'
være
Kør filen med kommandoen bash.
$bashsimple_if.sh
Brug af if -sætning med AND -logik:
Forskellige typer af logiske betingelser kan bruges i if -sætning med to eller flere betingelser. Hvordan kan du definere flere betingelser i if -sætning ved hjælp af OG logik er vist i følgende eksempel. '&&' bruges til at ansøge OG logik af hvis udmelding. Opret en fil med navnet 'If_with_AND.sh' for at kontrollere følgende kode. Her er værdien af brugernavn og adgangskode variabler vil blive taget fra brugeren og sammenlignet med ' admin 'Og' hemmelighed ’. Hvis begge værdier matcher, vil output være gyldig bruger , ellers bliver output ugyldig bruger .
! /er/bashsmed ud 'Indtast brugernavn'
Læsbrugernavn
smed ud 'Indtast adgangskode'
Læsadgangskode
hvis [[ ( $ brugernavn=='admin' && $ adgangskode=='hemmelighed' ) ]];derefter
smed ud 'gyldig bruger'
andet
smed ud 'ugyldig bruger'
være
Kør filen med kommandoen bash.
$bashhvis_med_AND.sh
Brug af if -sætning med OR -logik:
' || ’Bruges til at definere ELLER logik ind hvis tilstand. Opret en fil med navnet 'If_with_OR.sh' med følgende kode for at kontrollere brugen af ELLER logik af hvis udmelding. Her er værdien af n vil blive taget fra brugeren. Hvis værdien er lig med femten eller Fire. Fem så bliver output Du vandt spillet , ellers bliver output Du tabte spillet .
#!/bin/bashsmed ud 'Indtast et vilkårligt nummer'
Læsn
hvis [[ ( $ n -ækv femten || $ n -ækv Fire. Fem ) ]]
derefter
smed ud 'Du vandt spillet'
andet
smed ud 'Du tabte spillet'
være
Kør filen med kommandoen bash.
$bashhvis_med_OR.sh
Brug af else if -sætning:
Brugen af ellers hvis tilstand er lidt anderledes i bash end andet programmeringssprog. ' elif ’Bruges til at definere ellers hvis tilstand i bash. Opret en fil med navnet ' elseif_example.sh 'Og tilføj følgende script for at kontrollere, hvordan ellers hvis er defineret i bash script.
#!/bin/bashsmed ud 'Indtast dit lykketal'
Læsn
hvis [ $ n -ækv 101 ];
derefter
smed ud 'Du fik 1. præmie'
elif [ $ n -ækv 510 ];
derefter
smed ud 'Du fik 2. præmie'
elif [ $ n -ækv 999 ];
derefter
smed ud 'Du fik 3. præmie'
andet
smed ud 'Undskyld, prøv til næste gang'
være
Kør filen med kommandoen bash.
$bashelseif_example.sh
Brug af sagserklæring:
Sag udsagn bruges som alternativ til hvis-elseif-else udmelding. Start- og slutblokken for denne erklæring er defineret af ' sag 'Og' esac ’. Opret en ny fil med navnet ' case_example.sh 'Og tilføj følgende script. Outputtet af det følgende script vil være det samme som det forrige ellers hvis eksempel.
#!/bin/bashsmed ud 'Indtast dit lykketal'
Læsn
sag $ n i
101)
smed ud smed ud 'Du fik 1. præmie' ;;
510)
smed ud 'Du fik 2. præmie' ;;
999)
smed ud 'Du fik 3. præmie' ;;
*)
smed ud 'Undskyld, prøv til næste gang' ;;
esac
Kør filen med kommandoen bash.
$bashcase_example.sh
Hent argumenter fra kommandolinjen:
Bash -script kan læse input fra kommandolinjeargument som et andet programmeringssprog. For eksempel, $ 1 og $ 2 variabel bruges til at læse første og anden kommandolinjeargument. Opret en fil med navnet command_line.sh og tilføj følgende script. To argumentværdier læses af følgende script og udskriver det samlede antal argumenter og argumentværdierne som output.
#!/bin/bashsmed ud 'Samlede argumenter: $#'
smed ud '1. argument = $ 1'
smed ud '2. argument = $ 2'
Kør filen med kommandoen bash.
$bashcommand_line.sh Linux tip
Du kan kontrollere følgende link for at vide mere om brugen af kommandolinjeargument.
https://linuxhint.com/command_line_arguments_bash_script/
Få argumenter fra kommandolinjen med navne:
Hvordan du kan læse kommandolinjeargumenter med navne, vises i det følgende script. Opret en fil med navnet ' command_line_names.sh ’ og tilføj følgende kode. Her to argumenter, x og OG læses af dette script og udskriver summen af X og Y.
#!/bin/bashtilvredi '[email protected]'
gøre
indeks= $(smed ud $ arg | skære -f1 -d=)
timer= $(smed ud $ arg | skære -f2 -d=)
sag $ indeks i
x) x=$ timer;;
OG) og=$ timer;;
*)
esac
Færdig
((resultat= x + y))
smed ud 'X + Y =$ resultat'
Kør filen med bash -kommando og med to kommandolinjeargumenter.
$bashcommand_line_namesx=Fire. Fem OG=30
Kombiner strengvariabler:
Du kan nemt kombinere strengvariabler i bash. Opret en fil med navnet string_combine.sh og tilføj følgende script for at kontrollere, hvordan du kan kombinere strengvariabler i bash ved at placere variabler sammen eller bruge '+' operatør.
#!/bin/bashstreng 1='Linux'
streng2='Antydning'
smed ud '$ streng1$ string2'
streng3=$ streng1+$ string2
string3+='er en god tutorial blog site'
smed ud $ string3
Kør filen med kommandoen bash.
$bashstring_combine.sh
Hent understring af String:
Ligesom andre programmeringssprog har bash ingen indbygget funktion til at skære værdi fra strengen data. Men du kan udføre opgaven med understring på en anden måde i bash, der er vist i det følgende script. For at teste scriptet skal du oprette en fil med navnet ' substring_eksempel.sh 'Med følgende kode. Her er værdien, 6 angiver udgangspunktet, hvorfra understrengen starter og 5 angiver længden af delstrengen.
#!/bin/bashStr='Lær Linux fra LinuxHint'
subStr=$ {Str: 6: 5}
smed ud $ subStr
Kør filen med kommandoen bash.
$bashsubstring_eksempel.sh
Tilføj to tal:
Du kan udføre de aritmetiske operationer i bash på forskellige måder. Hvordan du kan tilføje to heltal i bash ved hjælp af dobbelte parenteser er vist i det følgende script. Opret en fil med navnet ' tilføj_numre.sh 'Med følgende kode. To heltalsværdier tages fra brugeren og udskrives resultatet af tilføjelse.
#!/bin/bashsmed ud 'Indtast første nummer'
Læsx
smed ud 'Indtast andet nummer'
Læsog
(( sum= x + y))
smed ud 'Resultatet af tilføjelse =$ sum'
Kør filen med kommandoen bash.
$bashtilføj_numre.sh
Du kan kontrollere følgende link for at vide mere om bash aritmetik.
https://linuxhint.com/bash_arithmetic_operations/
Opret funktion:
Hvordan du kan oprette en simpel funktion og kalde funktionen, er vist i følgende script. Opret en fil med navnet ' function_example.sh 'Og tilføj følgende kode. Du kan kun kalde enhver funktion ved navn uden at bruge en parentes i bash script.
#!/bin/bashfungereF1()
{
smed ud 'Jeg kan godt lide bash programmering'
}
F1
Kør filen med kommandoen bash.
$bashfunction_example.sh
Opret funktion med parametre:
Bash kan ikke erklære funktionsparameter eller argumenter på tidspunktet for funktionsdeklaration. Men du kan bruge parametre i funktion ved at bruge en anden variabel. Hvis to værdier passeres på tidspunktet for funktionskald, bruges $ 1 og $ 2 variabel til at læse værdierne. Opret en fil med navnet ' funktion | _parameter.sh 'Og tilføj følgende kode. Her er funktionen ' Rektangel_område ' vil beregne arealet af et rektangel baseret på parameterværdierne.
#!/bin/bashRektangel_område() {
areal= $(($ 1 * $ 2))
smed ud 'Området er:$ område'
}
Rektangel_område10 tyve
Kør filen med kommandoen bash.
$bashfunction_parameter.sh
Pass Return -værdi fra funktion:
Bash -funktionen kan overføre både numeriske værdier og strengværdier. Hvordan du kan videregive en strengværdi fra funktionen er vist i følgende eksempel. Opret en fil med navnet ' function_return.sh 'Og tilføj følgende kode. Funktionen, hilsen() returnerer en strengværdi til variablen, timer som udskrives senere ved at kombinere med anden streng.
#!/bin/bashfungerehilsen() {
s='Hej,$ navn'
smed ud $ str
}
smed ud 'Indtast dit navn'
Læsnavn
timer= $(hilsen)
smed ud 'Funktionens returværdi er$ timer'
Kør filen med kommandoen bash.
$bashfunction_return.sh
Du kan kontrollere følgende link for at vide mere om brugen af bash -funktion.
https://linuxhint.com/return-string-bash-functions/
Lav bibliotek:
Bash bruger ‘ mkdir 'Kommando for at oprette en ny mappe. Opret en fil med navnet ' make_directory.sh 'Og tilføj følgende kode for at tage et nyt biblioteksnavn fra brugeren. Hvis biblioteksnavnet ikke findes på den aktuelle placering, vil det oprette biblioteket, ellers viser programmet fejl.
#!/bin/bashsmed ud 'Indtast biblioteksnavn'
Læsnewdir
``mkdir $ newdir``
Kør filen med kommandoen bash.
$bashmake_directory.sh
Opret bibliotek ved at kontrollere eksistensen:
Hvis du vil kontrollere eksistensen af bibliotek på den aktuelle placering, før du udfører ‘ mkdir 'Kommando, så kan du bruge følgende kode. ’-D 'Bruges til at teste, at en bestemt mappe findes eller ej. Opret en fil med navnet ' directory_exist.sh ’ og tilføj følgende kode for at oprette et bibliotek ved at kontrollere eksistensen.
#!/bin/bashsmed ud 'Indtast biblioteksnavn'
Læsndr
hvis [ -d '$ ndir' ]
derefter
smed ud 'Register findes'
andet
``mkdir $ ndir``
smed ud 'Directory oprettet'
være
Kør filen med kommandoen bash.
$bashbibliotek_eksist.sh
Du kan kontrollere følgende link for at vide mere om oprettelse af biblioteker.
https://linuxhint.com/bash_mkdir_not_existent_path/
Læs en fil:
Du kan læse enhver fil linje for linje i bash ved hjælp af loop. Opret en fil med navnet ' read_file.sh 'Og tilføj følgende kode for at læse en eksisterende fil med navnet' bog.txt '.
#!/bin/bashfil='book.txt'
mens Læslinje;gøre
smed ud $ linje
Færdig < $ fil
Kør filen med kommandoen bash.
$bashread_file.shKør følgende kommando for at kontrollere det originale indhold af ' bog.txt ’Fil.
$katbog.txt
Du kan kontrollere følgende link for at kende de forskellige måder at læse fil på.
https://linuxhint.com/read_file_line_by_line_bash/
Slet en fil:
' rm 'Kommando bruges i bash til at fjerne enhver fil. Opret en fil med navnet ' delete_file.sh 'Med følgende kode for at tage filnavnet fra brugeren og fjerne. Her, '-jeg' option bruges til at få tilladelse fra brugeren, før filen fjernes.
#!/bin/bashsmed ud 'Indtast filnavn for at fjerne'
Læsfn
rm -jeg $ fn
Kør filen med kommandoen bash.
$ls$bashdelete_file.sh
$ls
Tilføj til fil:
Nye data kan tilføjes til enhver eksisterende fil ved hjælp af '>>' operatør i bash. Opret en fil med navnet ‘Append_file.sh 'Og tilføj følgende kode for at tilføje nyt indhold i slutningen af filen. Her, ' Lær Laravel 5 'Tilføjes ved' book.txt ’ fil efter udførelse af scriptet.
#!/bin/bashsmed ud 'Inden filen tilføjes'
katbog.txt
smed ud 'Lær Laravel 5'>>bog.txt
smed ud 'Efter tilføjelse af filen'
katbog.txt
Kør filen med kommandoen bash.
$bashappend_file.sh
Test om filen findes:
Du kan kontrollere eksistensen af fil i bash ved hjælp af '-Og' eller '-F' mulighed. '-F' option bruges i det følgende script til at teste fileksistensen. Opret en fil med navnet ' file_exist.sh 'Og tilføj følgende kode. Her vil filnavnet passere fra kommandolinjen.
#!/bin/bashfilnavn=$ 1
hvis [ -f '$ filnavn' ];derefter
smed ud 'Filen findes'
andet
smed ud 'Filen eksisterer ikke'
være
Kør følgende kommandoer for at kontrollere filens eksistens. Her, bog.txt filen findes og bog2.txt findes ikke på den aktuelle placering.
$ls$bashfile_exist.sh book.txt
$bashfile_exist.sh book2.txt
Send e-mail:
Du kan sende e -mail ved at bruge ' post 'Eller' Send mail ’Kommando. Inden du bruger disse kommandoer, skal du installere alle nødvendige pakker. Opret en fil med navnet ' mail_eksempel.sh 'Og tilføj følgende kode for at sende e -mailen.
#!/bin/bashModtager= admin@eksempel.com
Emne= Hilsen
Besked= Velkommen til vores websted
``post-s $ Emne $ Modtager <<< $ Besked``
Kør filen med kommandoen bash.
$bashmail_eksempel.sh
Hent aktuel dato:
Du kan få den aktuelle systemdato og klokkeslætværdi ved hjælp af ` dato `kommando. Hver del af dato- og tidsværdi kan analyseres ved hjælp af ' Y ',' m ',' d ',' H ',' M ' og ' S ’ . Opret en ny fil med navnet ' date_parse.sh ’ og tilføj følgende kode til at adskille værdierne dag, måned, år, time, minut og anden.
#!/bin/bashÅr=``dato+%OG``
Måned=``dato+%m``
Dag=``dato+%d``
Time=``dato+%H``
Minut=``dato+%M``
Sekund=``dato+%S``
smed ud ``dato``
smed ud 'Aktuel dato er:$ Dag-$ Måned-$ År'
smed ud 'Aktuel tid er:$ Time:$ Minut:$ Andet'
Kør filen med kommandoen bash.
$bashdate_parse.sh
Vent kommando:
vente er en indbygget kommando over Linux, der venter på at fuldføre enhver kørende proces. vente kommando bruges med et bestemt proces -id eller job -id. Hvis der ikke gives noget proces -id eller job -id med ventekommando, venter det på, at alle aktuelle underordnede processer er fuldført og returnerer exit -status. Opret en fil med navnet ' wait_example.sh ’ og tilføj følgende script.
#!/bin/bashsmed ud 'Vent kommando' &
proces_id=$!
vente $ proces_id
smed ud 'Forladt med status $?'
Kør filen med kommandoen bash.
$bashwait_example.sh
Du kan kontrollere følgende link for at vide mere om ventekommando.
Sleep -kommando:
Når du vil stoppe udførelsen af en hvilken som helst kommando i en bestemt periode, kan du bruge den søvn kommando. Du kan indstille forsinkelsesbeløbet med sekunder (r), minutter (m), timer (h) og dage (d). Opret en fil med navnet 'Sleep_example.sh' og tilføj følgende script. Dette script venter i 5 sekunder efter kørsel.
#!/bin/bashsmed udVentetil 5sekunder
søvn 5
smed udAfsluttet
Kør filen med kommandoen bash.
$bashsleep_example.sh
Du kan kontrollere følgende link for at vide mere om søvnkommando.
https://linuxhint.com/sleep_command_linux/
Håber, efter at have læst denne artikel har du et grundlæggende koncept om bash scripting sprog, og du vil være i stand til at anvende dem baseret på dine krav.