Laborationer - lx13/scripting_o_programmering_grund GitHub Wiki
Felaktigheter
Laboration 4
På övning 3, borde det inte heta Paramater Substiution istället för som författaren har valt att döpa det till Dollarsign Substitution vilket inte är ett vedertaget begrepp?
Laboration 8
Sidan 4, stycket med innehållet
Ett exempel på hur vi kan skapa ett eget ls-kommando:
$ ls -l | grep -v total | awk '{ print $8"\t ar "$5" bytes stor" }'
Raden med grep tar bort den första raden från ls-kommandots utmatning. Skicka vidare skicka vidare.. är inte rör fantastiska?
Den korrekta raden för att få önskat resultat (i varje fall på Ubuntu 13.04) är
$ ls -l | grep -v total | awk '{ print $9"\t ar "$5" bytes stor" }'
D.v.s. det 9:e fältet visar storleken, inte det 8:e som visar tiden. Detsamma gäller för alla rader med koden
$ ls -l /etc/| awk '/^.*\.conf$/ { print $8 }'
Här bör det också vara $9 istället för $8. Det gäller alltså både sidan 4 och 5 i laboration 8 där en hel del exempel använder just denna kodsnutt. OBS: Dubbelkolla gärna så det inte är en lokal avvikelse!
Sidan 5, AWK-raden
$ ls -l /etc/| awk 'BEGIN { print ”Jag hittade:\n” } /\<.*\.conf$/ { print $8 }'
fungerar inte, borde det inte vara så här istället:
$ ls -l /etc/| awk 'BEGIN { print "Jag hittade:\n" } /^.*\.conf$/ { print $9 }'
d.v.s. ett hustak (^) istället för (\<). \< betyder väl inget särskilt i regexp? Backslashet escapar ju bara < så att < faktiskt blir ett < utan speciell innebörd. Och i regexp har väl inte < någon speciell mening ändå? Eller är jag helt ute och cyklar nu? Och även då ändra $8 till $9. Förmodligen är \< bara ett typo.
Övning 5
Felaktiga inloggningsförsök i Debian/Ubuntu hamnar i filen /var/log/auth.log som default, inte i /var/log/syslog som anges i labben.