Cool bash scripting trikset med arrays

Hvis du gjør mye bash scripting så du vet det er noen ganske smarte triks du kan trekke av med det. Bash er et svært fleksibelt verktøy. De fleste Linux-brukere er ikke klar over hvor kraftig den er og sjelden bruker den. Men når du trenger det, er det alltid der. Jeg spiller rundt med bash mye og benytter det for en rekke ting. Kommandolinjen er absolutt min venn. Fra kommando du gjøre omtrent hva som helst - men noen ganger de enkleste ting, sier telle filene i en katalog, kan unnvike deg. For å gjøre dette som en kommando du ville gi noe sånt som ls -1 ~ /| wc -l
. Ikke alltid lett å huske. Men si at du kan lage en enkel bash script som ville telle antall filer i en katalog samt liste disse filene. Nå som ville være kult ... og aktuelt

I denne artikkelen skal jeg introdusere deg til en enkel bash skript som vil gjøre nettopp det. Telle og liste antall filer i en katalog. Bash script er ganske enkel og tar nytte av arrays.

Hva er en matrise?

Hvis du er usikker på hva en matrise er, frykt ikke. En matrise er bare en systematisk anordning av objekter. Denne ordningen er vanligvis i rader og kolonner. Selvfølgelig er det mye mer komplisert definisjoner av arrays ... spesielt når den brukes til søknad programmering. Men for å få til dette bash script, er det trygt å stoppe på denne definisjonen.

Skriptet
Figur 1

Skriptet for matrisen er ganske enkel. Figur 1 viser hvordan manuset skal se ut som du redigerer det i din favoritt editor. Og for din kopi /lim nytelse, jeg gir deg den faktiske koden itself:


array=(`ls`)

wd=`pwd`
len=${#array[*]}
notify-send "Du har $ Len gjenstander i $ wd."
i = 0
mens [$ i -Det $ len]; trenger
echo "$ i: $ {matrise [$ i]}"
la jeg ++
gjort
merke skriptet ovenfor utnyttet kjekk liten notify- send kommandoen Jeg har nylig introduserte deg til. Hva dette scriptet gjør er å bruke en matrise for å telle, liste, og nummerere filene i en katalog. Nå hvis du ser på koden vil du se at det også lister ut filer (og nummer hver av dem). Dette er ikke praktisk med varsle-send
kommando så i stedet bruker vi bare varslingssystemet for å informere brukeren hvor mange filer er i en katalog. Det er fint fordi det full produksjon vil være innenfor kommandoen line.What du trenger å gjøre er å kopiere den koden inn i en fil, lagre filen (la oss kalle det matrise
), og deretter gi at filen kjør tillatelser med kommandoen chmod ugo + x rekke
. Jeg gir den bruker /gruppe /andre kjør tillatelser bare i tilfelle du kopiere denne filen til /usr/bin.Naturally dette skriptet er litt feil. For eksempel hvis du skulle kopiere dette skriptet inn i /usr /bin katalogen du kan kjøre det fra en katalog, og det vil gi deg all den effekt du trenger. Men hvis du prøver å kjøre den kommandoen fra dialogboksen run (hit < Alt > F2) vil du motta ingen utgang. Så dette manuset, som er, er begrenset til å komman line.Figure 2
Når du kjører skriptet fra en kommandolinje resultatene vil se ut som vist i figur 2. Her kan du se både varsle-sending
resultater så vel som de trykte resultater i terminalen. Ganske kjekk liten trick.Obviously dette skriptet er litt begrenset rett? Den egentlige hensikten med denne øvelsen var å vise deg litt mer forhånd shell script, samt hvordan et skript kan samhandle med varsle-send
command.Final thoughtsShell skripting er en utrolig fleksibel og nyttig verktøy. Alle disse Linux-brukere som unngår kommandolinjen har ingen anelse om makten de mangler. Med denne enkle script kan du endre det, eller bruke den for en rekke muligheter. Vi vil komme tilbake til arrays i shell scripting og mye, mye mer.