Bash, Shell, PHP, Python, Perl, CGI
Roger Wilco
Posts: 5923 Joined: 2004-05-23 12:53
Post
by Roger Wilco » 2010-01-05 15:14
Das sollte eigentlich funktionieren, wenn $IPSTATUS und $STATUS keine Leerzeichen enthalten.
Folgendes funktioniert bei mir:
Code: Select all
$ cat test.sh
#!/bin/sh
VAR1="active"
VAR2="unknown"
VAR3="inactive"
VAR4="known"
if [ "${VAR1}" = "active" -a "${VAR2}" = "unknown" ]
then
echo "Yay 1!"
fi
if [ "${VAR3}" = "active" -a "${VAR4}" = "unknown" ]
then
echo "Yay 2!"
fi
echo
$SHELL --version|head -n1
Code: Select all
$ sh test.sh
Yay 1!
GNU bash, Version 4.0.35(2)-release (x86_64-unknown-linux-gnu)
Roger Wilco
Posts: 5923 Joined: 2004-05-23 12:53
Post
by Roger Wilco » 2010-01-05 18:08
Die Leerzeichen zwischen den Variablen (bzw. Literalen) und dem Gleichheitszeichen sind obligatorisch. ;)
Code: Select all
$ cat test.sh
#!/bin/sh
IPSTATUS="activ"
STATUS="unknown"
if [ "${IPSTATUS}" = "passiv" -a "${STATUS}" = "unknown" ]
then
echo test;
fi
if [ "${IPSTATUS}" = "activ" -a "${STATUS}" = "unknown" ]
then
echo test2;
fi