bergetun Skrevet 27. februar 2003 Del Skrevet 27. februar 2003 Er det noe som kunne veare saa vennlig aa hjelpe meg med aa lage ett lite script. Det er enentlig to ting jeg trenger hjelp med, Det jeg vil gjoere er skrive til en hvilken som helst fil (feks bestemor.txt) som kommer opp naar jeg skrver "ls -lah" Visst du er i det virkelig hjelpsome hjoernet i dag saa hadde det veart utrolig fint om du/dere ogsaa kunne hjulpet meg med aa skrive alt som staar paa en bestemt linje i "ls -lah /home/bestemor" PS: Det med ls -lah er bare ett eksempel, det er flere ting jeg vil bruke det til .. Lenke til kommentar
burre Skrevet 27. februar 2003 Del Skrevet 27. februar 2003 Til slinke enkle operasjoner så trengs det ikke mye skripting, men jeg prøver å gi noen tips. Første du trenger å gjøre er å opprette en fil med første linje som er : #!/bin/bash Da bruker bash til å kjøre resten av skriptet. La oss kalle denne filen listfiler.sh husk at denne filen må være kjørbar. - chmod 755 listfiler.sh ./listfiler.sh for å kjøre. Dersom du vil bruke argument til skriptet, dvs listfiler.sh mormor filtekst.txt så får du tak i mormor ved å bruke $1 og filtekst ved å bruke $2 osv, prøv med #!/bin/bash echo $1 $2 $3 Så er det over til å gjøre det du vil #!/bin/bash ls -lah > bestemor.txt eller #!/bin/bash ls -lah $1 > bestemor.txt I *nix ånd så har man tre output/input 'kanaler' (hva er et godt norsk ord?), stdin (som regel tastatur), stdout (som regel skjerm) og stderror (som regel skjerm) ls -lah vil liste filene til stdout. ved å bruke > så tar man å 'redirigerer' stdout til en fil. >> vil legge til i slutten på fila. en annen måte er å redirigere stdout fra en kommando til stdin til en annen, en såkalt pipe. ls -lah | grep bestemor grep vil filtrere ut alle linjer som ikke har bestemor i seg. Tester det er en del enkle tester man kan bruke i bash, man test er et godt utgangspunkt. Gir et enkelt eksempel først : [ -f bestermoaktiv ] && echo filen bestemor finnes. [ -f ] sjekker om en fil finnes, returner exit kode 0 dersom den finner den (true) eller 1 dersom ikke. dersom man vil skrive flere kommandoer på en linje, så er det vanlig å bruke ; ls -l ; echo listet filer && er spesiell siden den kun kjører dersom forrige program gikk ok (exit kode=0) Nå har jeg skrivd littegranne, fyr løs dersom du stopper opp på noe. Lenke til kommentar
bergetun Skrevet 1. mars 2003 Forfatter Del Skrevet 1. mars 2003 Helt utrolig bra, du burde laget en webside og kurset folk.. Det er sikkert veldig enkelt for mange av dere der ute som har peiling me naar noen forklarer saa godt saa er learer man saa mye raskere.. Sitter ogsaa litt aa funderer paa aa lage ett lite script som gir en slags meny .. Dette var det jeg tenkte: Skriver sh bestemor Saa kommer det opp en meny med valg fra feks 1 til 10 Brukeren kan da taste 1 og da skal det skje noe hehe Feks .. bruker taster 1 > "Hello world" blir skrevet ut bruker taster 2 saa starter mc (midnight commander) bruker taster 3 og linux rebooter .. Kunne noen hjulpet meg med dette ? Lenke til kommentar
Stim Skrevet 1. mars 2003 Del Skrevet 1. mars 2003 Hei Les og du skal finne: http://www.tldp.org/LDP/abs/abs-guide.pdf Lenke til kommentar
bergetun Skrevet 1. mars 2003 Forfatter Del Skrevet 1. mars 2003 Takker for den linken . Jeg skal ta og lese den naar jeg faar tid en dag .. Genial pdf .. Men er det noen som kan gi meg ett eksempel paa det eksempelet jeg gav ? Hadde veart morro om vi alle kunne gaatt igjenom og leart litt her, faatt i gang en thread om bash scripting. Sikkert mange som lurer og har lyst aa leare litt om bash scripting .. Lenke til kommentar
bergetun Skrevet 1. mars 2003 Forfatter Del Skrevet 1. mars 2003 Klarte aa lage ett ut av ett annet eksempel jeg fant paa nettet.. Bash scripting er gøy. #!/bin/bash killall mpg123 echo -e "IINET's Gratis Shoutcast Serveren" echo -e "Tast in nummeret for radio kanalen du vil streame" echo -e "*1* Trance/Techno" echo -e "*2* DnB/Jungle" echo -e "*3* Underground & Mainstream HipHop Beats" echo -e "*4* Mostly Classical music, relaxing" echo -e "*5* 100% Psychedelic Trance" echo -e "*6* Modern Alternative Rock" echo -e "*7* Hardrock Music" echo -e "*exit*" read character if [ "$character" = "1" ]; then killall mpg123 mpg123 -b 6000 http://trance.ii.net:8001 else if [ "$character" = "2" ]; then killall mpg123 mpg123 http://trance.ii.net:8001 exit else if [ "$character" = "3" ]; then killall mpg123 mpg123 -b 5000 http://trance.ii.net:8003 exit else if [ "$character" = "4" ]; then killall mpg123 mpg123 -b 5000 http://trance.ii.net:8004 exit else if [ "$character" = "5" ]; then killall mpg123 mpg123 -b 5000 http://trance.ii.net:8005 exit else if [ "$character" = "6" ]; then killall mpg123 mpg123 -b 5000 http://trance.ii.net:8006 exit else if [ "$character" = "7" ]; then killall mpg123 mpg123 -b 5000 http://trance.ii.net:8007 exit else if [ "$character" = "exit" ]; then killall mpg123 exit else echo "What? Try again .. " fi fi fi fi fi fi fi fi Lenke til kommentar
Cronius Skrevet 1. mars 2003 Del Skrevet 1. mars 2003 if [ "$character" = "1" ]; then killall mpg123 mpg123 -b 6000 http://trance.ii.net:8001 else if [ "$character" = "2" ]; then killall mpg123 mpg123 http://trance.ii.net:8001 exit else if [ "$character" = "3" ]; then killall mpg123 mpg123 -b 5000 http://trance.ii.net:8003 exit (...) fi fi fi fi fi fi fi fi Tips: bruk "elif". Da slipper du unna med bare en "fi" tilslutt. Eks: if [ "$character" = "1" ] then killall mpg123 mpg123 -b 6000 http://trance.ii.net:8001 elif [ "$character" = "2" ] then killall mpg123 mpg123 http://trance.ii.net:8001 exit elif [ "$character" = "3" ] then killall mpg123 mpg123 -b 5000 http://trance.ii.net:8003 exit (...) fi Lenke til kommentar
bergetun Skrevet 4. mars 2003 Forfatter Del Skrevet 4. mars 2003 Takker for den Cronius. Er det noen som tilfeldigvist vet hvordan jeg skal kunne starte mpg123 streamene som bakgrunnsprocesser ? Slik at scriptet startet streamen i bakgrunnen slik at jeg kan velge videre paa kanaler visst jeg oensker aa bytte. Slik det er naa maa jeg stoppe streamen manuelt og starte scriptet igjen for aa velge en ny kanal. jeg har proevd litt med screens men jeg har ikke faatt det til .. Lenke til kommentar
burre Skrevet 4. mars 2003 Del Skrevet 4. mars 2003 Dersom du vil ha menyer, så lager dialog dem for deg : (dette krever nyere dialog enn det som kommer med rh 7.1 og lavere) #!/bin/bash #her starter man avspilling av musikk spillmusikk() { killall mpg123 mpg123 $stream & # & gjør at man starter prosessen i bakgrunnen # gå til hovedmenyen etter man har startet spilling av musikk start } #hovedmenyen : start() { valg=$(dialog --stdout --no-cancel --menu "Mp3 musikk på $HOSTNAME" 24 80 17 1 "Trance/Techno" 2 "DnB/Jungle" x "Exit") case $valg in 1 ) stream="http://trance.ii.net:8001" ; spillmusikk ;; 2 ) stream="http://trance.ii.net:8002" ; spillmusikk ;; x ) exit 0 ;; esac } #for å starte hovedmenyen start Lenke til kommentar
bergetun Skrevet 4. mars 2003 Forfatter Del Skrevet 4. mars 2003 valg=$(dialog --stdout --no-cancel --menu "Mp3 musikk på $HOSTNAME" 24 80 17 1 "Trance/Techno" 2 "DnB/Jungle" x "Exit") Tusen tusen takk for denne, men den virker ikke helt paa min redhat 8.0 box, jeg faar feilmelding paa --menu. Hadde du giddet aa forklare den linjen som jeg har quota ut step by step ? Jeg forstaar ikke helt hva den betyr. Lenke til kommentar
burre Skrevet 4. mars 2003 Del Skrevet 4. mars 2003 valg=$() tilordne variablen valg resultat av kommando inni () --stdout : standard til dialog er å putte valg i stderr, dette er for å få valget til stdout --no-cancel : fjerne cancel valget --menu : meny til dialog, denne fungerer ikke hos deg, prøv med man dialog. --menu hos meg må ha fire valg. menytekst, eks "Mp3 musikk på $HOSTNAME", height, eks 24 , width, eks 80, menu-height, eks 17. så kommer valga, de er i par, første er 'hurtigtast' og hva som returneres, eks : 1 Og så litt mer tekst til valget eks : "Trance/Techno" Kan du skrive man dialog og så paste innholdet til --menu + feilmeldinga du får? på min boks så er det : --menu text height width menu-height [ tag item ] ... As its name suggests, a menu box is a dialog box that can be used to present a list of choices in the form of a menu for the user to choose. Choices are displayed in the order given. Each menu entry consists of a tag string and an item string. The tag gives the entry a name to distinguish it from the other entries in the menu. The item is a short description of the option that the entry represents. The user can move between the menu entries by pressing the UP/DOWN keys, the first letter of the tag as a hot-key, or the number keys 1-9. There are menu-height entries displayed in the menu at one time, but the menu will be scrolled if there are more entries than that. When dialog exits, the tag of the chosen menu entry will be printed on stderr. If the --help-button option is given, the corresponding help text will be printed if the user selects the help button. 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å