DesertGlow Skrevet 23. oktober 2003 Del Skrevet 23. oktober 2003 Jeg sitter her med en liten oppgave i bash-programmering. Jeg er totalt newbie på linux, så dette har jeg virkelig ikke peiling på, men håper at noen kan hjelpe meg Scriptet jeg har ser slik ut: #!/bin/bash clear echo "Du er logget inn som: " whoami echo "Din gruppenummer er: " id -g echo "Ditt skall er: " echo $SHELL echo "Din nåværende plassering er: " pwd echo "Dette skriptet ble kjørt: " date Dette kjører helt fint og jeg får fram det jeg vil. Poenget er at jeg skal ha dette scriptet til å vises både på skjerm og skrives til en fil. Jeg prøvde meg derfor med noe slikt: #!/bin/bash clear h='echo "Du er logget inn som: "; whoami; echo "Din gruppenummer er: "; id -g; echo "Ditt skall er: "; echo $SHELL; echo "Din nåværende plassering er: "; pwd; echo "Dette skriptet ble kjørt: "; date' $h Syntakes for selve scriptet ut på én linje er rett og kjørte, og jeg fikk også lagt denne inn i variabelen $h. Tenkte så at jeg skulle bruke en kommando av typen "$h > fil.x" for å skrive innholdet til fil. Det var her ting gikk i stampe siden den da naturlig vis bare kopierer inn innholdet i variabelen i stedet for resultatet av å kjøre den. Har tenkt på å først skrive innholdet til fil og så bruke "cat" til å dumpe innholdet ut på skjermen, men får ikke til dette heller. Noen som har noen gode idéer på hvordan jeg kan få innholdet mitt inn i en fil og på skjermen? Lenke til kommentar
GNUfan Skrevet 23. oktober 2003 Del Skrevet 23. oktober 2003 Du trenger ikke legge alt på en linje for å >-e det ut til en fil. Programnavnet blir lagret som $0, så du kan bruke $0 > utfil. Men, jeg prøvde dette, og kom plutselig på at jeg hadde laget en forkbomb.. Må mekke en if da eller noe sånn. Lenke til kommentar
GNUfan Skrevet 23. oktober 2003 Del Skrevet 23. oktober 2003 #!/bin/bash clear echo "Du er logget inn som: "; whoami; echo "Din gruppenummer er: "; id -g; echo "Ditt skall er: "; echo $SHELL; echo "Din nåværende plassering er: "; pwd; echo "Dette skriptet ble kjørt: "; date; if [ ! -e utfil ] then $0 > utfil fi Fungerer. if [ ! -e utfil ] then $0 > utfil fi Forklaring: [ er et eget program for å legge seg inn i if-er. ! snur om på den, sånn at rett blir galt og galt blir rett -e tester om utfil er en fil og eksisterer. Så, når fila 'utfil' IKKE eksisterer, så kjører den seg selv en gang til og redirecter ouput til utfil. Eventuelt kan du bytte ut alle forekomster av utfil med $1, som betyr kommandolinjeargument nr.1 (altså, ./script.sh hepp gjør 'hepp' til outputfil) Lenke til kommentar
DesertGlow Skrevet 23. oktober 2003 Forfatter Del Skrevet 23. oktober 2003 Du trenger ikke legge alt på en linje for å >-e det ut til en fil.Programnavnet blir lagret som $0, så du kan bruke $0 > utfil. Men, jeg prøvde dette, og kom plutselig på at jeg hadde laget en forkbomb.. Må mekke en if da eller noe sånn. Hmmm, at $0 blir programmet var fint å vite Men dette forandrer ikke på problemet med at man ved å kjøre $0 > fil kun får innholdet av variabelen, ikke resultatet av å kjøre koden som ligger i variabelen...? Lenke til kommentar
GNUfan Skrevet 23. oktober 2003 Del Skrevet 23. oktober 2003 Du trenger ikke legge alt på en linje for å >-e det ut til en fil.Programnavnet blir lagret som $0, så du kan bruke $0 > utfil. Men, jeg prøvde dette, og kom plutselig på at jeg hadde laget en forkbomb.. Må mekke en if da eller noe sånn. Hmmm, at $0 blir programmet var fint å vite Men dette forandrer ikke på problemet med at man ved å kjøre $0 > fil kun får innholdet av variabelen, ikke resultatet av å kjøre koden som ligger i variabelen...? Koden i innlegget mit over fungerer hos meg, men du kan jo kjøre exec $0 > utfil Lenke til kommentar
Velmont Skrevet 23. oktober 2003 Del Skrevet 23. oktober 2003 #!/bin/bash clear utfil="utfil.txt" function infob { echo "Du er logget inn som: `whoami`" > $utfil echo "Din gruppenummer er: `id -g`" >> $utfil echo "Ditt skall er: $SHELL" >> $utfil echo "Din nåværende plassering er: `pwd`" >> $utfil echo "Dette skriptet ble kjørt: `date`" >> $utfil } infob cat $utfil Denne gjør det du vil Lenke til kommentar
DesertGlow Skrevet 23. oktober 2003 Forfatter Del Skrevet 23. oktober 2003 Takker! Skal se om jeg får dette til å fungere Lenke til kommentar
DrDoogie Skrevet 23. oktober 2003 Del Skrevet 23. oktober 2003 Denne gjør det du vil Kudos! Lenke til kommentar
Velmont Skrevet 23. oktober 2003 Del Skrevet 23. oktober 2003 Denne gjør det du vil Kudos! Kudos? Hva betyr dét kjære DrDroogie? Lenke til kommentar
DrDoogie Skrevet 23. oktober 2003 Del Skrevet 23. oktober 2003 http://www.thefreedictionary.com/Kudos 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å