Kj3tll Skrevet 22. november 2015 Del Skrevet 22. november 2015 (endret) Hei, kan du hjelpe meg? Jeg holder på å repetere til eksamen.. og står fast på denne oppgaven.. Har ikke gjort en slik oppgave før.. :S Jeg vet hvordan en parameter virker, men jeg vet ikke hvordan jeg skal gå frem for å legge det inn i et bash script.. 9a) Lag først et program som spør brukeren etter navnet på en katalog. Dersom det ikke får noen parameter, skal det bruke arbeidskatalogen. Programmet skal gå gjennom katalogen og telle hvor mange vanlige filer den finner, hvor mange symbolske linker, og hvor mange kataloger. Disse opplysningene skal programmet skrive til standard output, med forklaring. Hvis katalogen inneholder 3 filer, 2 symbolske linker, og 5 underkataloger, skal programmet skrive «3 filer, 2 symbolske linker, 5 kataloger, totalt 10» til standard output. 9b) Skriv om programmet slik at det forventer én parameter istedenfor å spør brukeren. 9c) Utvid også programmet til å kunne analysere flere kataloger når bruker gir flere parametre 9a)!/bin/bashclearcdecho -e "Hvilke katalog skal vi telle? \c"read DIRNUMFIL=$(ls -l $DIR | grep -c ^-)NUMSYM=$(ls -l $DIR | grep -c ^l)NUMDIR=$(ls -l $DIR | grep -c ^d)echo -e "$NUMFIL filer"echo -e "$NUMSYM symbolske linker"echo -e "$NUMDIR kataloger"((TOTAL = NUMFIL + NUMSYM + NUMDIR))echo -e "Totalt: $TOTAL " Endret 22. november 2015 av Kj3tll Lenke til kommentar
Zash Skrevet 22. november 2015 Del Skrevet 22. november 2015 http://linuxconfig.org/bash-scripting-tutorialPunkt 4 der viser hvordan. Søk etter "arguments in bash scripting" hvis det fortsatt er uklart. Finnes maange eksempler. Lenke til kommentar
Kj3tll Skrevet 22. november 2015 Forfatter Del Skrevet 22. november 2015 http://linuxconfig.org/bash-scripting-tutorialPunkt 4 der viser hvordan. Søk etter "arguments in bash scripting" hvis det fortsatt er uklart. Finnes maange eksempler. takk, da har jeg følgende og programmet funker fint Men.. er det noe jeg kunne gjort bedre for å gjøre scriptet mindre? eventuelt sette inn for-løkke? #!/bin/bash clear cd echo "Katalogen du teller er: $1" NUMFIL=$(ls -l $1 | grep -c ^-) NUMSYM=$(ls -l $1 | grep -c ^l) NUMDIR=$(ls -l $1 | grep -c ^d) echo -e "$NUMFIL filer" echo -e "$NUMSYM symbolske linker" echo -e "$NUMDIR kataloger" ((TOTAL = NUMFIL + NUMSYM + NUMDIR)) echo -e "Totalt: $TOTAL " Lenke til kommentar
Zash Skrevet 22. november 2015 Del Skrevet 22. november 2015 Du svarer ikke helt på det oppgaven spørr etter, hvis du fortsatt holder på med 9a. " Dersom det ikke får noen parameter, skal det bruke arbeidskatalogen." Lenke til kommentar
Kj3tll Skrevet 22. november 2015 Forfatter Del Skrevet 22. november 2015 Du svarer ikke helt på det oppgaven spørr etter, hvis du fortsatt holder på med 9a. " Dersom det ikke får noen parameter, skal det bruke arbeidskatalogen." right.. så hvordan gjør man det :'-)* jeg kan vell bruke pwd.. kan jeg bruke if.. then.. fi? Hadde nok vært best å bruke for-lokke siden neste oppg. vil at jeg skal bruke for lokke Lenke til kommentar
Zash Skrevet 22. november 2015 Del Skrevet 22. november 2015 Du må nok ha en if også. Ellers ser det ut som du er på rett vei! 1 Lenke til kommentar
Kj3tll Skrevet 22. november 2015 Forfatter Del Skrevet 22. november 2015 (endret) Du må nok ha en if også. Ellers ser det ut som du er på rett vei! if [ "$*" == "" ]; thenecho "katalogen du teller er = pwd" else echo "Katalogen du teller = $1" fi ..... noe slik ? Takk for hjelpen Endret 22. november 2015 av Kj3tll Lenke til kommentar
Zash Skrevet 22. november 2015 Del Skrevet 22. november 2015 Ja, det er en begynnelse! 1 Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå