[ubuntu] simpel bash script doet vreemd

Pagina: 1
Acties:

Onderwerpen


Verwijderd

Topicstarter
Ik heb het volgende bash script aangemaakt. het haalt een todo van tracks af, wat een getting things done systeem is dat draait op een lokale webserver. Het script mailt het vervolgens naar mij toe als alles goed gaat. Hier het scriptje:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash
rm todo*
echo "1"
wget "http://127.0.0.1:3000/todos.txt?token=4d5d1c51de93be09ccfe94566d23778780b984f2"
#definieer e-mail adres
EMAIL="nuweernietmijneigenmail@gmail.com"
echo "2"
#definieer emailbericht
EMAILMESSAGE1="/home/gijs/bin/todos.txt?token=4d5d1c51de93be09ccfe94566d23778780b984f2"
echo "3"
#definieer onderwerp
SUBJECT="Tracks"
echo "4"
mail -s "$SUBJECT" "$EMAIL" < $EMAILMESSAGE1
echo "5"


Hij doorloopt vervolgens het hele script, maar stuurt geen mail. En dan herhaald hij het script schijnbaar zonder einde.

Ik heb toch nergens een whileloop of iets dergelijks erin staan. Iemand enig idee waarom het scriptje op hol slaat?

[ Voor 6% gewijzigd door Verwijderd op 17-09-2008 21:34 . Reden: hmmz, nu wel de volledige inhoud van het script :X ]


  • blaataaps
  • Registratie: Juli 2001
  • Niet online
wget "http://127.0.0.1:3000/todos.txt?token=4d5d1c51de93be09ccfe94566d23778780b$
Waarom die $, en waar is het afsluitende dubbele aanhalingsteken? :)

  • sPENKMAN
  • Registratie: April 2002
  • Laatst online: 04-09 12:42
blaataaps schreef op woensdag 17 september 2008 @ 21:16:
wget "http://127.0.0.1:3000/todos.txt?token=4d5d1c51de93be09ccfe94566d23778780b$
Waarom die $, en waar is het afsluitende dubbele aanhalingsteken? :)
Die $ krijg je in pico / nano als de regel langer is dan het scherm breed, de TS kan beter de output van cat <bestand> even plaatsen denk ik :)

[ Voor 3% gewijzigd door sPENKMAN op 17-09-2008 21:19 ]

Eve char: Warock <TEST>


Verwijderd

Topicstarter
Sorry er miste een stukje. Ik pas gelijk de OP aan.

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Kun je niet beter met wget naar een normaal bestand schrijven? In de laatste regel heb je geen quotes om $EMAILMESSAGE heen, maar er zitten potentieel wel rare tekens in, zoals een vraagteken, zo te zien.

Verwijderd

Topicstarter
wget buiten het script doet het wel goed?

Die key, met dat vraagteken erin heb ik niet voor het uitzoeken, tracks maakt op basis van die key een bepaalde todo aan. (In dit geval al mijn todo dingen, kan ook per project e.d.)

edit: aanhalingstekens helpen niet.

update, zonder de mail -s regel herhaalt ie zich niet steeds

[ Voor 17% gewijzigd door Verwijderd op 17-09-2008 21:27 ]


  • Defspace
  • Registratie: Mei 2000
  • Laatst online: 29-04 22:59

Defspace

Administrator

Je zal toch naar een ander bestand moeten wegschrijven.
Met wget gewoon een target opgeven. (todos.txt b.v)

(en je echte mail staat er weer in... ;) )

[ Voor 18% gewijzigd door Defspace op 17-09-2008 21:27 ]


Verwijderd

Topicstarter
Met wget naar een ander bestand wegschrijven helpt niet... een echo "test" na de mail-regel levert geen test in de output op.

[ Voor 36% gewijzigd door Verwijderd op 17-09-2008 21:38 ]


  • Defspace
  • Registratie: Mei 2000
  • Laatst online: 29-04 22:59

Defspace

Administrator

Volgens mij staat er in je todos.txt bestand geen Escape Char voor de mail input (?? 2x enter of punt enter ??, kan nu niet zelf testen..), hij zal dus op je mail proces blijven hangen denk ik.

Verwijderd

Topicstarter
Dat staat inderdaad niet achteraan mijn todos.txt. Hoe krijg ik dat er nu snel achteraan? Gewoon een punt tikken achter "$EMAILMESSAGE1" lijkt me ook niet echt een goed idee.

  • RemcoDelft
  • Registratie: April 2002
  • Laatst online: 03-05 10:30
Een paar dingen:
wget heeft ook een commandline optie voor het meegeven van een outputfilename, dan kan je die gewoon als vast beschouwen.
Ik ken "mail" niet van Ubuntu, heb zelf Gentoo, en gebruik al jaren "sendEmail" voor commandline mailen.

Om het probleem te vinden kan je het beste (?) elke regel per stuk in een xterm pasten, en dan per regel zien wat het doet.

Verwijderd

Topicstarter
Ok, ik snap het al, dat scriptje heet mail en het staat natuurlijk in mijn path, dus die overruled de aanroep van het programma mail, waarmee ik die e-mailtjes probeer te versturen. Dus loopt dat hele ding natuurlijk.

Is er ook een prijs voor stupiditeit? In ieder geval heel erg bedankt voor de feedback, hij doet het nu die mail2 heet.

[ Voor 88% gewijzigd door Verwijderd op 17-09-2008 22:02 ]


Acties:
  • 0 Henk 'm!

  • sam.vimes
  • Registratie: Januari 2007
  • Laatst online: 08-06 08:44
Volgende keer t.b.v. debuggen je script beginnen met:
Bash:
1
2
#!/bin/bash
set -x

dan had je onmiddellijk gezien wat er mis is.

Acties:
  • 0 Henk 'm!

  • Rainmaker
  • Registratie: Augustus 2000
  • Laatst online: 14-07-2024

Rainmaker

RHCDS

Of gewoon je script fatsoenlijk aanroepen met ./ of het volledige pad :)

We are pentium of borg. Division is futile. You will be approximated.

Pagina: 1