Toon posts:

[Shell] command not found

Pagina: 1
Acties:

Verwijderd

Topicstarter
'k ben beetje nieuw in schell scripting, dit is me probleem .... heel stom waarschijnlijk, majah :)

Dit is het stukje code waar ie problemen op geeft ... jah inderdaad een gewone stomme if :'(
DAY heeft waarde 1, alsek scriptje run geeft ie altijd

./script.sh: 1: command not found

if $DAY -eq "7"
then
{
echo "Mailing file ..."
cat $save_path/$mailfile | uuencode $save_path/$mailfile | mail $email
}
fi
Hij heeft dus problemen mee die if ... heb er al haakjes rond gezet, etc ... toch blijft ie het geven ...

  • Grum
  • Registratie: Juni 2001
  • Niet online
op de eerste regel in je file

#!/path/to/sh

neerzetten

dat is meestal

#!/bin/sh

controleer maar met which sh of whereis sh

Verwijderd

Topicstarter
Mja ik heb het volgende er al staan:

#!/bin/bash


Ik had ff klein stukje uit me code genomen met die if ...
Het is echt die if waar iets mis mee is ... al de rest doet ie goed tot dat ik er een if tussen gooi.

Een if moet een expressie valideren toch geen commando uitvoeren.. toch ? :)

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

quotes rond die 7 weg?

Doet iets met Cloud (MS/IBM)


  • BartV
  • Registratie: Januari 2000
  • Laatst online: 10-09 12:27
code:
1
2
3
4
5
6
7
if test $DAY -eq "7"
then
{ 
echo "Mailing file ..."
cat $save_path/$mailfile | uuencode $save_path/$mailfile | mail $email
} 
fi

Die test moet het hem doen denk ik... :)

I think I've got the hang of it now... :w :q :wq :wq! ^d X exit X Q :quitbye CtrlAltDel ~~q :~q logout save/quit :!QUIT ^[zz ^[ZZ ZZZZ ^H ^@ ^L ^[c ^# ^E ^X ^I ^T ? help helpquit ^D ^d ^C ^c helpexit ?Quit ?q ^Kx /QY sync halt


Verwijderd

Topicstarter
Nee ... had ik ook al geprobeerd. |:

Verwijderd

Topicstarter
Hmmm ja inderdaad die test doet het ...


Al me andere if's doen het nu, maar behalve die ik heir opgaf die zget nu:

test: integer expression expected before -eq

  • BartV
  • Registratie: Januari 2000
  • Laatst online: 10-09 12:27
Nee ... had ik ook al geprobeerd. |:
Bedoel je nu die quotes of test?

I think I've got the hang of it now... :w :q :wq :wq! ^d X exit X Q :quitbye CtrlAltDel ~~q :~q logout save/quit :!QUIT ^[zz ^[ZZ ZZZZ ^H ^@ ^L ^[c ^# ^E ^X ^I ^T ? help helpquit ^D ^d ^C ^c helpexit ?Quit ?q ^Kx /QY sync halt


  • BartV
  • Registratie: Januari 2000
  • Laatst online: 10-09 12:27
test: integer expression expected before -eq
Ja, die heb ik ooit ook wel eens gehad, in een script dat altijd heeft gewerkt, en na een update van het een of ander dus nooit meer...

Wat staat er exact in $DAY?

I think I've got the hang of it now... :w :q :wq :wq! ^d X exit X Q :quitbye CtrlAltDel ~~q :~q logout save/quit :!QUIT ^[zz ^[ZZ ZZZZ ^H ^@ ^L ^[c ^# ^E ^X ^I ^T ? help helpquit ^D ^d ^C ^c helpexit ?Quit ?q ^Kx /QY sync halt


Verwijderd

Topicstarter
ik bedoelde die test, die werkt op de andere if's ...

Behalve op die dat ik hier in me voorbeeld opgaf.
Dit is de variabele day:

DAY=`date +%w`


Ik zal dus van day een integer moete maken ... in php np, maar hier ? :)

  • BartV
  • Registratie: Januari 2000
  • Laatst online: 10-09 12:27
Hmm, raar, dat zou moeten werken, net ff zelf getest:
code:
1
2
3
4
5
6
dikkiedik@dokkie:~$ DAY=`date +%w`
dikkiedik@dokkie:~$ if test $DAY -eq "1"
> then
> echo bla
> fi
bla

I think I've got the hang of it now... :w :q :wq :wq! ^d X exit X Q :quitbye CtrlAltDel ~~q :~q logout save/quit :!QUIT ^[zz ^[ZZ ZZZZ ^H ^@ ^L ^[c ^# ^E ^X ^I ^T ? help helpquit ^D ^d ^C ^c helpexit ?Quit ?q ^Kx /QY sync halt


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 13-09 15:13
Mijn ervaring is, dat als ik die foutmelding krijg, ik meestal de shebang line (#!executable) onder Windows heb gemaakt en er dus stiekum een \r\n ipv een enkele \n achter staat. Even saven in Unix formaat helpt dan.

Verwijderd

Topicstarter
Jah ... bij mij aan de prompt doet ie het ook goed :/

Ik hebbem niet in windows gemaakt ...

  • BartV
  • Registratie: Januari 2000
  • Laatst online: 10-09 12:27
Niet per ongeluk ergens een typfoutje? Spatie-tje teveel? Zijn van die leuke hoofdbrekens waar je zeker 100 keer overheen kijkt :o

I think I've got the hang of it now... :w :q :wq :wq! ^d X exit X Q :quitbye CtrlAltDel ~~q :~q logout save/quit :!QUIT ^[zz ^[ZZ ZZZZ ^H ^@ ^L ^[c ^# ^E ^X ^I ^T ? help helpquit ^D ^d ^C ^c helpexit ?Quit ?q ^Kx /QY sync halt


Verwijderd

Topicstarter
Bah neen ... :/


integer expression expected before -eq


Hij wil gewoon dat DAY een integer is, niet ? Kan ik niet casten ? Question, hoe doe je dit ? :)

  • Rhythmic
  • Registratie: Februari 2000
  • Laatst online: 07-10-2025
Welke syntax if heeft ligt aan de shell die je gebruikt. In bash kan je test condition gebruiken, of [ condition ]. Die haakjes moeten sowieso weg (het is geen C of Java ofzo, het if-fi paar dient als haakjes). De manpage van 'test' bevat alle informatie die je wilt (op te vragen door 'man test' te tikken op de prompt). Het scriptje werkt op deze manier wel:

code:
1
2
3
4
5
6
7
8
9
#!/bin/bash



if [ $DAY = "7" ]
then echo "Mailing file ..."
     cat save_path/$mailfile | uuencode $save_path/$mailfile | mail $email

fi
Pagina: 1