Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: bash script:echo na elke uitvoering een hoger getal  (gelezen 1212 keer)

bash script:echo na elke uitvoering een hoger getal
« Gepost op: 2011/03/30, 00:38:56 »
Dag Iedereen,

Ik vermoed dat de titel niet zoveel duidelijkheid schept. Gelukkig kan ik U meedelen, die onduidelijkheid zit ook in mijn hoofd te dansen... >:(
Ik ben al een tijdje bezig met het zoeken naar een bash script dat het volgende doet:

1e keer uitvoeren, bash geeft als output 2
***3 minuten wachten...
2e keer uitvoeren, bash geeft als output 3
***2 minuten wachten
3e keer uitvoeren, bash geeft als output 4
***6 minuten wachten
4e keer uitvoeren, bash geeft als output 5
***4 minuten wachten
5e keer uitvoeren, bash reset, batch geeft als output 2
***7 minuten wachten...
6e keer uitvoeren, bash geeft als output 3
***2 minuten wachten
7e keer uitvoeren, bash geeft als output 4
[and so on...]

Het script moet dus na elke keer uitvoeren een variabele laten toenemen met 1, en tot op zekere hoogte terug geresetted worden naar de beginwaarde. Feit is dat de shell sessie telkens onderbroken zal worden, en dat er geen vast ritme zit in het uitvoeren van de bewerkingen. Inmiddels ben ik tot de conclusie dat bash totaal niet geschikt is om mee te rekenen (laat staan te rekenen met variabelen), maar gezien de toepassing ben ik genoodzaakt bash te gebruiken als programma dat de output geeft. Ik ben al een tijdje bezig geweest met het werken met de commandline tool "bc", maar daar kom ik er ook niet mee uit. Na 6 uur zoeken ben ik ten einde raad, en ben ik wanhopig op zoek naar iemand die me een duwtje in de rug kan geven...

Ter info, in een windows batch script zou alles er als volgt uit moeten zien:
@ECHO OFF
a=2
echo %a > "C:\temp.txt"
:loop
sleep 10
a=%a+1
echo %a > "C:\temp.txt"
goto loop

Met Vriendelijke Groet,

Anton Willemse
« Laatst bewerkt op: 2011/03/30, 00:41:54 door Anton_Willemse »

Offline Rachid

  • Lid
    • rachidbm
    • Mijn blog
Re: bash script:echo na elke uitvoering een hoger getal
« Reactie #1 Gepost op: 2011/03/30, 01:16:57 »
Als je serieus met getallen wilt rekenen kun je misschien toch een programmeertaal overwegen. Je kunt een Python-script ook gewoon in je Terminal aanroepen. Qua gebruik lijkt dat dan hetzelfde.
Waarom zit je vast aan bash?

Het onderstaande print elke seconde een hoger getal in bash.
#!/bin/bash

a=2
echo $a  # > "/tmp/temp.txt"
while true;
do
a=$(($a+1))
echo $a # > "/tmp/temp.txt"
sleep 1
done
Als je het # weghaalt print ie het naar een bestand ipv stdout.
Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!