Programmering i bash - del 2

Andra delen Detta mini-handledning programmering i Bash, där vi lär oss att använda cykler och andra verktyg som hjälper oss att förbättra funktionerna i vår skript.

Om villkorligt

Funktionen för If är att tillämpa ett filter och utföra en operation eller uppgift för varje typ av filter som används. Dess struktur är som följer:

Om [villkor]; sedan elif kommandon [villkor]; sedan annars kommandon; fi-kommandon

Ett exempel visas bredvid For-slingan i respektive avsnitt.

cykler

1. While: det kommer att utföra alla kommandon som anges mellan do och done så länge villkoret är sant. Om vi ​​vill skicka jämförelseoperatörer till det måste uttrycket vara inom parentes.

medan CONDITION / COMMAND gör kommandon

Exempel: multiplikationstabell för ett tal

#! / bin / bash X = 1 eko "Ange ett tal och tryck ENTER" läs M # Slingan styr att X är mindre än eller lika med 10 medan [$ X –le 10] gör # I R lagrar vi multiplikationen av X med MR = $ [X * M] # Denna multiplikation är tryckt på skärmekot "$ M * $ X = $ R" # Med let ökar vi värdet på X med 1 enhet, låt X = $ X + 1 klar

2. För: lagrar en lista med element i en variabel, som kommer att användas för att utföra vissa operationer med varje cykel.

för VARIABLE i ELEMENTS gör kommandon

Exempel: program som kopierar en fil från en mapp till en annan och ersätter en gammal fil.

# / bin / bash #Vi skapar käll- och målkataloger ORIGIN = / home / user / Downloads DESTINATION = / home / user / Documents # Vi placerar oss i käll-cd $ ORIGIN # Av alla filer vill vi bara ha den som är # ring FILE for FILE * gör ARCH-DESTINATION = "$ DESTINATION / $ FILE" # -f filtrerar oss vanliga filer, eftersom kataloger är # inget bra för oss. –Nt filtrerar bort # filer “nyare” än de # hittades i målmappen om [-f $ FILE] && [$ FILE –nt $ ARCH-DESTINATION]; sedan eko "Kopiera $ FILE ..." # vi kopierar filen med cp cp $ FILE $ ARCH-DESTINATION färdig #We cd för att avsluta källmappen cd

Ett annat exempel: skript där användaren måste gissa ett slumptal som genereras av datorn.

# / bin / bash # Ett slumpmässigt tal genereras från 1 till 10, det sparas # i RANDOM RANDOM = $ [$ RANDOM% 10 + 1] medan [1] echo –n "Ange ett nummer:" läs NUM # Jämför om antalet som användaren har valt är # lika med RANDOM; kom ihåg att använda $ för att utvärdera #värdena för variablerna och inte deras namn om [“$ NUM –eq“ $ RANDOM ”]; sedan eko "Du har rätt!" #break gör det möjligt att avsluta slingan medan break # Om antalet är mindre än RANDOM elif [“$ NUM –gt“ $ RANDOM ”]; sedan eko "Det är mindre" "Om inte, är det större än RANDOM annars echo" DET ÄR större "gjort

3. Fram till: ganska lika i struktur till While, förutom att koden alltid körs medan utvärderingen av villkoret är negativ, det vill säga programmet fortsätter att köra "tills tillståndet inträffar"

tills CONDITION / COMMAND gör kommandon

Exempel: skriv ut siffrorna 10-20 i fallande ordning

#! / bin / bash CONT = 20 # Så länge räknaren är mindre än 10 (-lt, "lägre # än") körs koden tills [$ CONT -lt 10]; echo "COUNTER $ CONT" # A CONT subtraheras av en enhet låt CONT- = 1 klar

4. Välj: den här sista cykeln är ett speciellt fall eftersom det vanligtvis används för att snabbt skapa menyer. Det fungerar på samma sätt som For-slingan.

välj VARIABLE i LISTA över utförda kommandon

Exempel: ge användaren möjlighet att fortsätta eller avsluta skriptet.

#! / bin / bash #item är en variabel som svarar på vad #användaren väljer, Fortsätt och Slutför är de #alternativ som är tillgängliga för honom, även om andra alternativ kan läggas till # mer välj objekt i Fortsätt Slutför gör #Om användaren väljer avsluta programmet, sedan med paus avslutar vi cykeln. om [$ item = "Finish"]; sedan bryta fi gjort
Tack Juan Carlos Ortiz!

Lägg till som prioriterad källa i Google