Ga naar inhoud

oefening shell-script


Aanbevolen berichten

Ik moet voor het avondonderwijs een pak oefeningen maken voor het vak Linux. Die lukken me redelijk, echter met shellprogramma's wil het me niet lukken. Ik zal 2 voorbeelden geven : 1) programmeer een shellprogramma "hoeveel". Dit programma toont je hoeveel mensen momenteel gebruik maken van het systeem. bv $ hoeveel Er zijn momenteel [22u34] 17 gebruikers. 2) Schrijf een programma "weekend". Dit programma zegt je of het al dan niet weekend is: bv $ weekend Vandaag is het weekend $ weekend Vandaag is een weekdag Ik snap er niet veel van :oops:
Link naar reactie
He leuke oefeningen zijn dat :) Probeer even in konqueror via [b:55c41eb6bd]man:/bash[/b:55c41eb6bd] in de manpagina's van bash (of via [b:55c41eb6bd]info:/bash[/b:55c41eb6bd] in de infopagina's van bash, mochten die er zijn, info is meestal wat overzichtelijker..) uit te vogelen welke commando's er nodig zijn voor je opdracht. Een shell script ziet er doorgaans zo uit: [code:1:55c41eb6bd] #!/bin/bash echo dit is een shell script exit [/code:1:55c41eb6bd] Sla dit op onder een naam, doe vervolgens [b:55c41eb6bd]chmod 777 ./shellscriptnaam[/b:55c41eb6bd] en typ achter de prompt ./shellscript om deze uit te voeren. Als de uitvoer [b:55c41eb6bd]dit is een shell script[/b:55c41eb6bd] is, dan weet je dat bovenstaand script werkt. succes, Max
Link naar reactie
Bedankt voor de tips. Ik ben tot het volgende gekomen en het werkt :P :P 1. HOEVEEL tel=`who | wc -l` uur=`date +%ku%M` echo Er zijn momenteel [$uur] $tel gebruikers 2. WEEKEND dag=`date +%w` if test $dag -eq 0 -o $dag -eq 7 then echo "Vandaag is het weekend" else echo "Vandaag is een weekdag" fi
Link naar reactie
Verdere bemoeizucht. Een tijdje terug heb ik ontdekt ('t staat ergens op dit forum) dat één gebruiker meerdere users kan 'veroorzaken'. (Dat heeft wellicht te maken met de virtuele consoles o.i.d. die je gebruikt. Als je grafisch werkt en vervolgens een console opentrekt veroorzaak je een tweede user. Wie kan dit beter uitleggen?) Weet je zeker dat de opdracht niet behelst dat je die (soms wel zesvoudige) vermeldingen van één en dezelfde gebruiker er niet moet terugbrengen tot één gebruiker? Als dat zo is: veel succes!
Link naar reactie
Om het probleem dat PeBo schets te ondervangen moet je dus gaan testen hoe gebruikers zijn ingelogd en evt. de dochter processen moet gaan elimineren wat hij dus bedoelt is volgende: in X inglogd en enkele xterms open geeft bijv. [code:1:c64bdd10be] /home/walter> who -lH GEBRUIKER REGEL LOGIN-TIJD UIT root tty1 May 18 15:36 walter :0 May 18 13:41 (console) walter pts/0 May 18 13:42 walter pts/1 May 18 15:26 root pts/2 May 18 15:40 (oceaan.waterland) [/code:1:c64bdd10be] console :0 en pts/0 zijn processen die het inloggen onder X met zich meebrengen het zou dus zaak moeten zijn dat je die processen eruit filterd die een dubbele login suggereren :D wat weer meebrengt dat je ook een externe sessie er weer juist niet uit mag gooien ;) Dus idd je kunt het zo moelijk maken als je wilt man who kan je wat verder brengen maar dan moet je UID gaan checken en de console waarop in gelogd is dus succes :D
Link naar reactie
Ik zit met een nieuw probleem. Ik wil een programma'tje schrijven dat de lancering van de Shuttle nabootst. Op het scherm verschijnt dan met tussenpozen van 5 seconden : 5 4 3 2 1 Take off Hier is mijn code die niet werkt: teller=5 while test ! $teller -eq 0 do echo -n "$teller" sleep 5 teller=`expr $teller -1` done echo Take off Ik zie de fout niet direct zitten. Iemand? Ik krijg als foutmelding : 5expr: syntax error ./shuttle: line 2: test: !: integer expression expected Take off
Link naar reactie
[quote:3499d054bb="rackiman"]Ik zit met een nieuw probleem. Ik wil een programma'tje schrijven dat de lancering van de Shuttle nabootst. Op het scherm verschijnt dan met tussenpozen van 5 seconden : 5 4 3 2 1 Take off Hier is mijn code die niet werkt: teller=5 while test ! $teller -eq 0 do echo -n "$teller" sleep 5 teller=`expr $teller -1` done echo Take off Ik zie de fout niet direct zitten. Iemand? Ik krijg als foutmelding : 5expr: syntax error ./shuttle: line 2: test: !: integer expression expected Take off[/quote:3499d054bb] probeer eens export teller=5 ipv. teller=5
Link naar reactie
[quote:4a222aee47="maximilaan"]Tja, het is een simpel scriptje, dus probeer zelf eens je voorstellen ;) Max[/quote:4a222aee47] Max probleem is dat ik er ook mee aan het stoeien gewest ben en er dus niet uitkom. Als een ander het wel kan ondervangen is het toch leuk om dat te horen ?? Daarbij komt dat er steeds veschillende dingen worden geopperd en dan is het weer geinig welke de beste optie is en of rakiman het nu wel werkend heeft gekregen.
Link naar reactie
Nou goed, nog één keer. Probeer het eens met:[code:1:d860e93e3b](...) while [[ "$teller" -ne "0" ]] (...) teller=`expr $teller - 1` (...)[/code:1:d860e93e3b]Of de eerste test echt zo moet, weet ik eigenlijk niet, maar in de Guide die ik eerder genoemd heb, staat vast tot in detail uitgelegd wat de (on)zin van die test-syntax is. Maar laat je het forum nu wel even weten of je hiermee uit de voeten kon ...?
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...