Merknad: Dette innlegget er fleire år gammalt. Informasjonen kan vere utdatert.
Eg har nyleg rydda litt i filer og mappar kring om på harddiskane mine. Her er noko av det eg fann:
#!/bin/bash # # Tek i mot ein tekststreng, og sjekker opp mot ei eksisterande tekstfil. # Viss teksten ikkje finst frå før, vert det lagt til i fila på ny line. filnamn="tekstfil.txt" # Fila me skal nytta. clear echo "*******************************************************" echo "* Legg til tekst i ei tekstfil *" echo "*******************************************************" echo "" echo "(Skriv «slutt» for å stogga)" echo "" echo "" # Funksjonen les() legg teksten du skriv inn i ein variabel $tekst les() { echo -n "Skriv inn tekst: " read tekst } # Funksjonen sjekkfil() ser om teksten finst i fila sjekkfil(){ finst=0 # Teljaren $finst er lik 0 while read line do if [ "$line" = "$tekst" ] then finst=1 # Viss teksten finst, set teljaren $finst lik 1 fi done < $filnamn # Viss teksten ikkje fanst i fila, er teljaren $finst framleis lik 0 } echo "-------------------------------------------------------" les # Start fyrste innlesing while [ "$tekst" != "slutt" ] # Utfør heilt til brukaren skriv «slutt» do sjekkfil # Sjekk om teksten finst i fila if [ $finst -eq 0 ] # viss teksten ikkje finst then echo "$tekst">>$filnamn # Legg til på slutten av fila echo "La til $tekst." echo "" else # Viss teksten finst echo "$tekst finst allereie." echo "" fi les # Ny innlesing done echo "-------------------------------------------------------" echo "" echo "Ferdig med innskriving av tekst. Her er heile fila:" while read line do echo $line # Skriv ut fila. done < $filnamn exit |
Kva
Dette er eit bash-skript. Innleiingsvis står det ei høveleg grei forklaring på kva skriptet gjer. Du skriv inn ein tekst, skriptet sjekker om den teksten finst frå før i fila tekstfil.txt, og viss den ikkje gjer det, vert teksten lagt til på ei ny line. Skriptet køyrer heilt til brukaren skriv «stopp», og då prentar skriptet ut alt innhaldet i fila.
Kvifor
I 2009 tok eg nokre studiepoeng i skriptprogrammering (Bash) frå Høgskulen i Nesna avd. Mo i Rana. Dette skriptet var ei av oppgåvene me fekk. Ikkje veldig elegant eller banebrytande, men enkelt og får jobben gjort. Så lengje PEBKAC-feil ikkje oppstår, t.d. at nokon endrar namn på tekstfila. Eg tykte studiet var artig. Eg hadde aldri prøvd meg med Bash før, men var godt kjent med til dømes PHP og JavaScript frå før. Skriptprogrammering er ganske likt same kva språk det føregår i, det er banalt sagt berre variablar, spørjingar og lykkjer. Og sjølvsagt innebygde og eigenlaga funksjonar. Dette skriptet skal demonstrera dette. Variablar: $finst, $filnamn. Spørjingar: if, then, else. Lykkjer: while, do, done. Innebygde funksjonar: echo, clear, read. Eigenlaga funksjonar: les(), sjekkfil().