Toon posts:

hoe werkt die sucess en failure in shellscript

Pagina: 1
Acties:

Verwijderd

Topicstarter
hey,

ik ben nu wat shell script aant leren maar ik krijg elke keer een fout als ik die success en failure gebruik ...
ik doe het op deze manier

echo -n "test"
ipchains -A forward -i eth0 -s 192.168.0.0/24 -j MASQ && \
success "test" || \
failure "test"

  • RvdH
  • Registratie: Juni 1999
  • Laatst online: 28-07 15:42

RvdH

Uitvinder van RickRAID

Welke fout krijg je dan?

Verwijderd

Topicstarter
hij zegt altijd op success en op failure command not found

  • RvdH
  • Registratie: Juni 1999
  • Laatst online: 28-07 15:42

RvdH

Uitvinder van RickRAID

Dat kan, ik heb ze ook niet op mijn systeem staan. Vervang 'success' en 'failure' even door het woord 'echo'. En dan is het ook handig om "test" te vervangen door "gelukt" of "mislukt", anders weet je nog niet welke echo hij uitvoerde.

Verwijderd

Topicstarter
nu krijg ik dus gewoon gelukt ...
hoe kan ik dit nu oplossen zodat ik daar krijg: test [ OK ]

  • RvdH
  • Registratie: Juni 1999
  • Laatst online: 28-07 15:42

RvdH

Uitvinder van RickRAID

Hmm ik neem aan dat je met RedHat werkt, aangezien je zo graag dat [ OK ] erbij wilt? :)
Nou goed, alle dingen die opgestart worden tijdens het booten van je Linux systeem, staan in 1 van de "init" directorys, /etc/rc1.d, /etc/rc2.d etc. De bestandjes die daar in staan, zijn meestal symbolic links (wat zijn dat? zie 'man ln') die wijzen naar een shell script in de /etc/init.d directory.

Pak in die directory een willekeurig bestandje, bekijk hem, en zie hoe het daar wordt gedaan. Waarschijnlijk met een absoluut pad naar de success en failure executables, dat pad zul je dan ook in je eigen script moeten zetten.

  • DPLuS
  • Registratie: April 2000
  • Niet online

DPLuS

 

Kan dat niet gewoon zo:
code:
1
2
3
4
5
6
7
8
#!/bin/bash

echo "Test"
if [ipchains -A forward -i eth0 -s 192.168.0.0/24 -j MASQ]; then
echo "Succes"
else
echo "Failed"
fi

  • RvdH
  • Registratie: Juni 1999
  • Laatst online: 28-07 15:42

RvdH

Uitvinder van RickRAID

Op woensdag 15 augustus 2001 19:52 schreef DPLuS het volgende:
Kan dat niet gewoon zo:
code:
1
2
3
4
5
6
7
8
#!/bin/bash

echo "Test"
if [ipchains -A forward -i eth0 -s 192.168.0.0/24 -j MASQ]; then
echo "Succes"
else
echo "Failed"
fi
Tuurlijk kan dat, maar je gebruikt nu al 6 regels terwijl die uit de eerste post maar 2 regels is... en voor de werkelijke uitvoer van het programma maakt het niets uit, ze doen exact hetzelfde (al denk ik dat de && || methode ietsiepietsie sneller is). :)
Pagina: 1