Toon posts:

[Bash script] exit status

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met een script die een commando remote uitvoerd. Het script haalt eerst variabelen uit een tekstbestand en gaat hiermee aan de slag.

Het probleem is nu dat wanneer de remote command is uitgevoerd, het script (volgens mij) een exit code krijgt van dat commando zodat hij uit een while loop vliegt. Kan ik die exit status ook veranderen?

Hier het script:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# Zet de counter op 0
count=0

# Lees het bestandje "ip.list" regel voor regel
while read line
do

# Zet de ingelezen regel in de variabele regel
regel="$line"

# Zet het IP in een variabele
ip=`echo $regel | awk '{print $1}'`

# Zet de connectienaam in een variabele
ipsec_naam=`echo $regel | awk '{print $2}'`

# Ping het IP (1 pakket)
reply=`ping -c 1 $ip | grep packets | awk '{print $4}'`
stamp=`date "+%D %H:%M"`

# Kijken of er een reply is gekomen op de ping request
if [ "$reply" = "0" ]; then
  echo $stamp $ip": "$ipsec_naam" heeft geen ipsec verbinding."
  echo "Sluiten van IPSec verbinding op gateway."

  command="nohup /usr/sbin/ipsec auto --down $ipsec_naam; nohup /usr/sbin/ipsec auto --unroute $ipsec_naam"

  slogin remote@192.168.1.10 $command

/me zegt dat hij nu uit de while lus springt!
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
else

  echo $stamp $ip": "$ipsec_naam" - IPSec verbinding."
  echo "Niets te doen :'( ."

fi

count=$[$count + 1]

done < ip.list

echo "$count connecties bekeken."


# EOF

  • grep
  • Registratie: Augustus 2001
  • Laatst online: 30-01 13:52

grep

meer begrep...

Volgens mij mis ik iets in het begin:
# Lees het bestandje "ip.list" regel voor regel
while read line
Dit moet volgens mij zoiets zijn:

cat ip.list | while read line

  • u_nix_we_all
  • Registratie: Augustus 2002
  • Niet online
Met "return X" in je script te zetten.
En dan is X je return value. :)

You don't need a parachute to go skydiving. You need a parachute to go skydiving twice.


  • Sjonny
  • Registratie: Maart 2001
  • Laatst online: 23:37

Sjonny

Fratser

return value kan je ophalen met $?
en setten door het runnen van true (0) of false (1)

The problem is in the part of your brain that handles intelligence.


Verwijderd

Topicstarter
grep schreef op 15 oktober 2002 @ 12:02:
Volgens mij mis ik iets in het begin:

[...]


Dit moet volgens mij zoiets zijn:

cat ip.list | while read line
Aan het eind heb ik het volgende staan:

code:
1
done < ip.list


Kan ik met een andere exit code wel in de loop blijven?
Heb nu het gevoel van niet..... :?