Bash -skript kan brukes til forskjellige formål, for eksempel å kjøre en skallkommando, kjøre flere kommandoer sammen, tilpasse administrative oppgaver, utføre oppgaveautomatisering osv. Så kunnskap om grunnleggende programmering er viktig for hver Linux -bruker. Denne artikkelen vil hjelpe deg med å få den grunnleggende ideen om bash -programmering. De fleste vanlige operasjonene med bash scripting er forklart med veldig enkle eksempler her.
Følgende emner for bash programmering er dekket i denne artikkelen.
- Hei Verden
- Echo Command
- Kommentarer
- Kommentar på flere linjer
- Mens Loop
- For Loop
- Få brukerinput
- Hvis uttalelse
- Og tilstand hvis uttalelse
- Eller betingelse hvis uttalelse
- Ellers hvis og ellers tilstand
- Sakstilstand
- Få argumenter fra kommandolinjen
- Få argumenter fra kommandolinjen med navn
- Kombiner to strenger i en variabel
- Få Substring of Strings
- Legg til 2 tall i en variabel
- Lag en funksjon
- Bruk funksjonsparametere
- Send returverdien fra skriptet
- Lag katalog
- Lag katalog ved å kontrollere eksistensen
- Les en fil
- Slett en fil
- Legg til fil
- Test om filen finnes
- Send e -posteksempel
- Få analyser gjeldende dato
- Vent kommando
- Søvnkommando
Lag og kjør første BASH -program:
Du kan kjøre bash -skript fra terminalen eller ved å kjøre en hvilken som helst bash -fil. Kjør følgende kommando fra terminalen for å utføre en veldig enkel bash -setning. Utdataene fra kommandoen vil være ' Hei Verden '.
$kastet ut 'Hei Verden'
Åpne en hvilken som helst editor for å lage en bash -fil. Her, nano editor brukes til å lage filen og filnavnet er satt til ‘ First.sh ’
$nanoFirst.sh
Legg til følgende bash -skript i filen og lagre filen.
#!/bin/bashkastet ut 'Hei Verden'
Du kan kjøre bash -fil på to måter. En måte er å bruke bash -kommandoen, og en annen er ved å angi kjøringstillatelse for å bash -filen og kjøre filen. Begge måter er vist her.
$bashFirst.shEller,
$chmoda+x First.sh$./First.sh
Bruk av ekkokommando:
Du kan bruke ekkokommando med forskjellige alternativer. Noen nyttige alternativer er nevnt i det følgende eksemplet. Når du bruker ‘ kastet ut '-Kommando uten noe alternativ, blir en ny linje lagt til som standard. '-N' alternativet brukes til å skrive ut tekst uten ny linje og '-Og' alternativet brukes til å fjerne backslash -tegn fra utdataene. Lag en ny bash -fil med navnet ' echo_example.sh 'Og legg til følgende skript.
#!/bin/bashkastet ut 'Skrive ut tekst med ny linje'
kastet ut -n 'Skrive ut tekst uten ny linje'
kastet ut -Og ' nFjerner ttilbakeslag ttegn n'
Kjør filen med bash -kommandoen.
$bashecho_example.sh
Bruk av kommentar:
'#' symbolet brukes til å legge til én linje kommentar i bash script. Lag en ny fil med navnet ' comment_example.sh ’ og legg til følgende skript med kommentar på én linje.
#!/bin/bash# Legg til to numeriske verdier
((sum=25+35))
#Skriv ut resultatet
kastet ut $ sum
Kjør filen med bash -kommandoen.
$bashcomment_example.sh
Bruk av flerlinjes kommentar:
Du kan bruke flerlinjekommentar i bash på forskjellige måter. En enkel måte er vist i følgende eksempel. Lag en ny bash med navnet, ‘Multiline-comment.sh’ og legg til følgende skript. Her, ':' og ' symboler brukes til å legge til flerlinjes kommentar i bash script. Dette følgende skriptet beregner kvadratet på 5.
#!/bin/bash:'
Følgende skript beregner
kvadratverdien av tallet, 5.
'
((område=5*5))
kastet ut $ område
Kjør filen med bash -kommandoen.
$bashmultiline-comment.sh
Du kan sjekke følgende lenke for å vite mer om bruk av bash -kommentar.
https://linuxhint.com/bash_comments/
Bruke While Loop:
Lag en bash -fil med navnet, 'While_example.sh', å vite bruken av samtidig som Løkke. I eksemplet, samtidig som loop vil iterere for 5 ganger. Verdien av telle variabelen vil øke med 1 i hvert trinn. Når verdien av telle variabel vil 5 deretter samtidig som loop vil avsluttes.
#!/bin/bashgyldig=ekte
telle=1
samtidig som [ $ gyldig ]
gjøre
kastet ut $ telle
hvis [ $ telle -ekv 5 ];
deretter
gå i stykker
være
((telle ++))
gjort
Kjør filen med bash -kommandoen.
$bashmens_eksempel.sh
Du kan sjekke følgende lenke for å vite mer om bruk av while loop.
https://linuxhint.com/bash- while-loop-examples/
Bruke For Loop:
Det grunnleggende til sløyfedeklarasjon er vist i følgende eksempel. Lag en fil som heter ‘ for_eksempel.sh 'Og legg til følgende skript ved hjelp av til Løkke. Her, til loop vil iterere for 10 ganger og skriv ut alle verdiene til variabelen, disk på en linje.
#!/bin/bashtil (( disk=10; disk>0; disk--))
gjøre
kastet ut -n '$ teller'
gjort
printf ' n'
Kjør filen med bash -kommandoen.
$bashfor_eksempel.sh
Du kan bruke til loop for forskjellige formål og måter i bash -skriptet ditt. Du kan sjekke følgende lenke for å vite mer om bruken av for loop.
https://linuxhint.com/bash-for-loop-examples/
Få brukerinput:
' lese 'Kommando brukes til å ta input fra bruker i bash. Lag en fil som heter ‘ user_input.sh 'Og legg til følgende skript for å ta innspill fra brukeren. Her vil en strengverdi bli tatt fra brukeren og vise verdien ved å kombinere annen strengverdi.
#!/bin/bashkastet ut 'Skriv inn navnet ditt'
leseNavn
kastet ut 'Velkommen$ navntil LinuxHint '
Kjør filen med bash -kommandoen.
$bashuser_input.sh
Du kan sjekke følgende lenke for å vite mer om bruk av brukerinngang.
https://linuxhint.com/bash-script-user-input/
Bruke if -setning:
Du kan bruke if -tilstanden med enkle eller flere forhold. Start- og sluttblokken for denne setningen defineres med 'hvis' og 'være' . Lag en fil som heter ‘ simple_if.sh 'Med følgende skript for å vite bruken hvis uttalelse i bash. Her, 10 er tilordnet variabelen, n . hvis verdien av $ n er mindre enn 10, vil utgangen være Det er et ett siffer tall , ellers blir utgangen Det er et tosifret tall . Til sammenligning, '-Lt' brukes her. Til sammenligning kan du også bruke '-Eq' til likestilling , '-Født' til ikke likestilling og '-Gt' til større enn i bash script.
#!/bin/bashn=10
hvis [ $ n -lt 10 ];
deretter
kastet ut 'Det er et ett siffer'
ellers
kastet ut 'Det er et tosifret tall'
være
Kjør filen med bash -kommandoen.
$bashsimple_if.sh
Bruke if -setning med AND logikk:
Ulike typer logiske forhold kan brukes i if -setning med to eller flere betingelser. Hvordan du kan definere flere forhold i if -setning ved hjelp av OG logikk er vist i følgende eksempel. '&&' brukes til å søke OG logikken til hvis uttalelse. Lag en fil med navnet ‘If_with_AND.sh’ for å sjekke følgende kode. Her er verdien av brukernavn og passord variabler vil bli tatt fra brukeren og sammenlignet med ' admin 'Og' hemmelig '. Hvis begge verdiene samsvarer, vil utgangen være gyldig bruker , ellers blir utgangen ugyldig bruker .
! /er/bashkastet ut 'Skriv inn brukernavn'
lesebrukernavn
kastet ut 'Oppgi passord'
lesepassord
hvis [[ ( $ brukernavn=='admin' && $ passord=='hemmelig' ) ]];deretter
kastet ut 'gyldig bruker'
ellers
kastet ut 'ugyldig bruker'
være
Kjør filen med bash -kommandoen.
$bashif_with_AND.sh
Bruke if -setning med OR -logikk:
' || ’Brukes til å definere ELLER logikk inn hvis tilstand. Lag en fil med navnet ‘If_with_OR.sh’ med følgende kode for å kontrollere bruken av ELLER logikken til hvis uttalelse. Her er verdien av n vil bli tatt fra brukeren. Hvis verdien er lik femten eller Fire fem da blir utgangen Du vant kampen , ellers blir utgangen Du tapte kampen .
#!/bin/bashkastet ut 'Skriv inn et hvilket som helst nummer'
lesen
hvis [[ ( $ n -ekv femten || $ n -ekv Fire fem ) ]]
deretter
kastet ut 'Du vant kampen'
ellers
kastet ut 'Du tapte kampen'
være
Kjør filen med bash -kommandoen.
$bashif_with_OR.sh
Bruker else if -setning:
Bruken av eller hvis tilstanden er litt annerledes i bash enn annet programmeringsspråk. ' elif ’Brukes til å definere eller hvis tilstand i bash. Lag en fil med navnet ' elseif_example.sh 'Og legg til følgende skript for å sjekke hvordan eller hvis er definert i bash script.
#!/bin/bashkastet ut 'Skriv inn ditt lykketall'
lesen
hvis [ $ n -ekv 101 ];
deretter
kastet ut 'Du fikk 1. premie'
elif [ $ n -ekv 510 ];
deretter
kastet ut 'Du har 2. premie'
elif [ $ n -ekv 999 ];
deretter
kastet ut 'Du fikk 3. premie'
ellers
kastet ut 'Beklager, prøv til neste gang'
være
Kjør filen med bash -kommandoen.
$bashelseif_example.sh
Bruke saksuttalelse:
Sak setning brukes som alternativ til hvis-ellers-annet uttalelse. Start- og sluttblokken til denne setningen er definert av ' sak 'Og' esac '. Lag en ny fil med navnet ' case_example.sh 'Og legg til følgende skript. Utdataene fra det følgende skriptet vil være det samme som det forrige eller hvis eksempel.
#!/bin/bashkastet ut 'Skriv inn ditt lykketall'
lesen
sak $ n i
101)
kastet ut kastet ut 'Du fikk 1. premie' ;;
510)
kastet ut 'Du har 2. premie' ;;
999)
kastet ut 'Du fikk 3. premie' ;;
*)
kastet ut 'Beklager, prøv til neste gang' ;;
esac
Kjør filen med bash -kommandoen.
$bashcase_example.sh
Få argumenter fra kommandolinjen:
Bash -skript kan lese input fra kommandolinjeargument som andre programmeringsspråk. For eksempel, $ 1 og $ 2 variabel brukes til å lese første og andre kommandolinjeargument. Lag en fil med navnet command_line.sh og legg til følgende skript. To argumentverdier leses av følgende script og skriver ut det totale antallet argumenter og argumentverdiene som output.
#!/bin/bashkastet ut 'Totalt antall argumenter: $#'
kastet ut 'Første argument = $ 1'
kastet ut 'Andre argument = $ 2'
Kjør filen med bash -kommandoen.
$bashcommand_line.sh Linux Hint
Du kan sjekke følgende lenke for å vite mer om bruk av kommandolinjeargument.
https://linuxhint.com/command_line_arguments_bash_script/
Få argumenter fra kommandolinjen med navn:
Hvordan du kan lese kommandolinjeargumenter med navn, vises i følgende skript. Lag en fil med navnet ' command_line_names.sh ’ og legg til følgende kode. Her to argumenter, X og OG blir lest av dette manuset og skriver ut summen av X og Y.
#!/bin/bashtilsinti '[e -postbeskyttet]'
gjøre
indeks= $(kastet ut $ arg | skjære -f1 -d=)
timer= $(kastet ut $ arg | skjære -f2 -d=)
sak $ indeks i
X) x=$ timer;;
OG) og=$ timer;;
*)
esac
gjort
((resultat= x + y))
kastet ut 'X + Y =$ resultat'
Kjør filen med bash -kommandoen og med to kommandolinjeargumenter.
$bashcommand_line_namesX=Fire fem OG=30
Kombiner strengvariabler:
Du kan enkelt kombinere strengvariabler i bash. Lag en fil med navnet string_combine.sh og legg til følgende skript for å sjekke hvordan du kan kombinere strengvariabler i bash ved å plassere variabler sammen eller bruke '+' operatør.
#!/bin/bashstreng1='Linux'
streng2='Hint'
kastet ut '$ string1$ string2'
streng3=$ string1+$ string2
string3+='er en god opplæringsbloggside'
kastet ut $ string3
Kjør filen med bash -kommandoen.
$bashstring_combine.sh
Skaff substring av String:
I likhet med andre programmeringsspråk har bash ingen innebygd funksjon for å kutte verdi fra strengen data. Men du kan gjøre oppgaven med delstreng på en annen måte i bash som er vist i det følgende skriptet. For å teste skriptet, opprett en fil med navnet ' substring_example.sh 'Med følgende kode. Her er verdien, 6 indikerer utgangspunktet fra hvor delstrengen vil starte og 5 angir lengden på delstrengen.
#!/bin/bashStr='Lær Linux fra LinuxHint'
subStr=$ {Str: 6: 5}
kastet ut $ subStr
Kjør filen med bash -kommandoen.
$bashsubstring_example.sh
Legg til to tall:
Du kan utføre de aritmetiske operasjonene på forskjellige måter. Hvordan du kan legge til to heltall i bash ved hjelp av doble parenteser, er vist i følgende skript. Lag en fil som heter ‘ add_numbers.sh 'Med følgende kode. To heltallsverdier blir tatt fra brukeren og skrevet ut resultatet av tillegg.
#!/bin/bashkastet ut 'Skriv inn første nummer'
lesex
kastet ut 'Skriv inn andre nummer'
leseog
(( sum= x + y))
kastet ut 'Resultatet av tillegg =$ sum'
Kjør filen med bash -kommandoen.
$bashadd_numbers.sh
Du kan sjekke følgende lenke for å vite mer om bash aritmetikk.
https://linuxhint.com/bash_arithmetic_operations/
Opprett funksjon:
Hvordan du kan lage en enkel funksjon og kalle funksjonen, er vist i følgende skript. Lag en fil som heter ‘ function_example.sh 'Og legg til følgende kode. Du kan bare kalle hvilken som helst funksjon ved navn uten å bruke en parentes i bash -skript.
#!/bin/bashfunksjonF1()
{
kastet ut 'Jeg liker bash programmering'
}
F1
Kjør filen med bash -kommandoen.
$bashfunction_example.sh
Opprett funksjon med parametere:
Bash kan ikke deklarere funksjonsparameter eller argumenter på tidspunktet for funksjonserklæring. Men du kan bruke parametere i funksjon ved å bruke en annen variabel. Hvis to verdier passeres på tidspunktet for funksjonskall, brukes $ 1 og $ 2 variabel for å lese verdiene. Lag en fil som heter ‘ funksjon | _parameter.sh 'Og legg til følgende kode. Her er funksjonen, ' Rektangel_område ' vil beregne arealet til et rektangel basert på parameterverdiene.
#!/bin/bashRektangel_område() {
område= $(($ 1 * $ 2))
kastet ut 'Området er:$ område'
}
Rektangel_område10 tjue
Kjør filen med bash -kommandoen.
$bashfunction_parameter.sh
Pass retur verdi fra funksjon:
Bash -funksjonen kan passere både numeriske og strengverdier. Hvordan du kan sende en strengverdi fra funksjonen er vist i følgende eksempel. Lag en fil med navnet ' function_return.sh 'Og legg til følgende kode. Funksjonen, hilsen() returnerer en strengverdi til variabelen, timer som skrives ut senere ved å kombinere med en annen streng.
#!/bin/bashfunksjonhilsen() {
s. s='Hallo,$ navn'
kastet ut $ str
}
kastet ut 'Skriv inn navnet ditt'
leseNavn
timer= $(hilsen)
kastet ut 'Returverdi for funksjonen er$ timer'
Kjør filen med bash -kommandoen.
$bashfunction_return.sh
Du kan sjekke følgende lenke for å vite mer om bruk av bash -funksjon.
https://linuxhint.com/return-string-bash-functions/
Lag katalog:
Bash bruker ‘ mkdir '-Kommando for å opprette en ny katalog. Lag en fil som heter ‘ make_directory.sh ’Og legg til følgende kode for å ta et nytt katalognavn fra brukeren. Hvis katalognavnet ikke eksisterer på gjeldende plassering, vil det opprette katalogen, ellers vil programmet vise feil.
#!/bin/bashkastet ut 'Skriv inn katalognavn'
lesenewdir
``mkdir $ newdir``
Kjør filen med bash -kommandoen.
$bashmake_directory.sh
Lag katalog ved å sjekke eksistens:
Hvis du vil kontrollere eksistensen av katalogen på den nåværende plasseringen før du utfører ‘ mkdir '-Kommandoen, kan du bruke følgende kode. ‘-D 'Alternativet brukes til å teste at en bestemt katalog eksisterer eller ikke. Lag en fil med navnet ' directory_exist.sh ’ og legg til følgende kode for å opprette en katalog ved å kontrollere eksistensen.
#!/bin/bashkastet ut 'Skriv inn katalognavn'
lesendr
hvis [ -d '$ ndir' ]
deretter
kastet ut 'Katalog eksisterer'
ellers
``mkdir $ ndir``
kastet ut 'Katalog opprettet'
være
Kjør filen med bash -kommandoen.
$bashdirectory_exist.sh
Du kan sjekke følgende lenke for å vite mer om katalogopprettelse.
https://linuxhint.com/bash_mkdir_not_existent_path/
Les en fil:
Du kan lese hvilken som helst fil linje for linje i bash ved å bruke loop. Lag en fil med navnet ' read_file.sh 'Og legg til følgende kode for å lese en eksisterende fil med navnet' bok.txt '.
#!/bin/bashfil='bok.txt'
samtidig som leselinje;gjøre
kastet ut $ linje
gjort < $ fil
Kjør filen med bash -kommandoen.
$bashread_file.shKjør følgende kommando for å sjekke det opprinnelige innholdet i ' bok.txt ’Fil.
$kattbok.txt
Du kan sjekke følgende lenke for å kjenne de forskjellige måtene å lese filen.
https://linuxhint.com/read_file_line_by_line_bash/
Slett en fil:
' rm '-Kommandoen brukes i bash for å fjerne filer. Lag en fil som heter ‘ delete_file.sh 'Med følgende kode for å ta filnavnet fra brukeren og fjerne. Her, '-Jeg' alternativet brukes for å få tillatelse fra brukeren før du fjerner filen.
#!/bin/bashkastet ut 'Skriv inn filnavn for å fjerne'
lesefn
rm -Jeg $ fn
Kjør filen med bash -kommandoen.
$ls$bashdelete_file.sh
$ls
Legg til fil:
Nye data kan legges til i en eksisterende fil ved å bruke '>>' operatør i bash. Lag en fil med navnet ‘Append_file.sh ’Og legg til følgende kode for å legge til nytt innhold på slutten av filen. Her, ' Lære Laravel 5 'Vil bli lagt til ved' book.txt ' filen etter at skriptet er utført.
#!/bin/bashkastet ut 'Før du legger til filen'
kattbok.txt
kastet ut 'Lær Laravel 5'>>bok.txt
kastet ut 'Etter at filen er lagt til'
kattbok.txt
Kjør filen med bash -kommandoen.
$bashappend_file.sh
Test om filen finnes:
Du kan kontrollere eksistensen av filen i bash ved å bruke '-Og' eller '-F' alternativ. '-F' alternativet brukes i det følgende skriptet for å teste fileksistensen. Lag en fil med navnet ' file_exist.sh 'Og legg til følgende kode. Her vil filnavnet passere fra kommandolinjen.
#!/bin/bashfilnavn=$ 1
hvis [ -f '$ filnavn' ];deretter
kastet ut 'Filen eksisterer'
ellers
kastet ut 'Filen eksisterer ikke'
være
Kjør følgende kommandoer for å kontrollere eksistensen av filen. Her, bok.txt filen finnes og bok2.txt finnes ikke på det nåværende stedet.
$ls$bashfile_exist.sh book.txt
$bashfile_exist.sh book2.txt
Send e-post:
Du kan sende e -post ved å bruke ‘ post 'Eller' sendmail ’Kommando. Før du bruker disse kommandoene, må du installere alle nødvendige pakker. Lag en fil med navnet ' mail_example.sh 'Og legg til følgende kode for å sende e -posten.
#!/bin/bashMottaker= admin@example.com
Emne= Hilsen
Beskjed= Velkommen til nettstedet vårt
``post-s $ Emne $ Mottaker <<< $ Melding``
Kjør filen med bash -kommandoen.
$bashmail_example.sh
Få analyser gjeldende dato:
Du kan få gjeldende systemdato og klokkeslettverdi ved å bruke ` Dato `kommando. Hver del av dato og klokkeslettverdi kan analyseres ved hjelp av ‘ Y ',' m ',' d ',' H ',' M ' og ' S ’ . Lag en ny fil med navnet ' date_parse.sh ' og legg til følgende kode for å skille verdier for dag, måned, år, time, minutt og sekund.
#!/bin/bashÅr=``Dato+%OG``
Måned=``Dato+%m``
Dag=``Dato+%d``
Time=``Dato+%H``
Minutt=``Dato+%M``
Sekund=``Dato+%S``
kastet ut ``Dato``
kastet ut 'Gjeldende dato er:$ Dag-$ Måned-$ År'
kastet ut 'Nåværende tid er:$ Time:$ Minutt:$ Second'
Kjør filen med bash -kommandoen.
$bashdate_parse.sh
Vent kommando:
vente er en innebygd kommando for Linux som venter på å fullføre en hvilken som helst kjørende prosess. vente kommandoen brukes med en bestemt prosess -ID eller jobb -ID. Hvis ingen prosess -ID eller jobb -ID er gitt med ventekommando, vil den vente på at alle nåværende underordnede prosesser er fullført og returnerer utgangsstatus. Lag en fil som heter ‘ wait_example.sh ’ og legg til følgende skript.
#!/bin/bashkastet ut 'Vent kommando' &
prosess_id=$!
vente $ prosess_id
kastet ut 'Avsluttet med status $?'
Kjør filen med bash -kommandoen.
$bashwait_example.sh
Du kan sjekke følgende lenke for å vite mer om ventekommando.
Søvnkommando:
Når du vil stoppe utførelsen av en hvilken som helst kommando i en bestemt periode, kan du bruke den søvn kommando. Du kan angi forsinkelsesbeløpet med sekunder (r), minutter (m), timer (t) og dager (d). Lag en fil med navnet ‘Sleep_example.sh’ og legg til følgende skript. Dette skriptet vil vente i 5 sekunder etter at det er kjørt.
#!/bin/bashkastet utVentetil 5sekunder
søvn 5
kastet utFullført
Kjør filen med bash -kommandoen.
$bashsleep_example.sh
Du kan sjekke følgende lenke for å vite mer om søvnkommando.
https://linuxhint.com/sleep_command_linux/
Håper, etter å ha lest denne artikkelen har du et grunnleggende konsept om bash scripting språk, og du vil kunne bruke dem basert på dine krav.