|
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