Вы упускаете пару вещей в своих if-elif-else
заявлениях. Первое, что нужно отметить, это то, что после каждого elif
вам нужно then
. После этого ваши внутренние операторы if-else должны быть закрыты своими собственными fi
. Наконец, удалите скобки из вызовов для выхода, они не нужны.
Ваш код будет выглядеть следующим образом:
#!/bin/sh
METH1=$(ip=$(ifconfig eth0 | awk '$1 == "inet" {print $2}'):7001; echo $ip)
METH2=$(echo $(find /u01/ -name config.xml |grep -v bak| xargs grep -A4 AdminServer | grep listen-address | cut -d'>' -f 2 | cut -d'<' -f 1))
PATH=$(find /u01/oracle/config/ -wholename */AdminServer)
if [ "$PATH" ] = 0; then
if [ "$METH1" ] = 0; then
echo $METH1
elif [ "$METH2" ] = 0; then
echo $METH2
else
exit
fi
else
if [ "$METH2" ] = 0; then
echo $METH2
else
exit
fi
fi
Примечание: Вы также используя sh вместо bash. Если вы действительно хотите использовать bash, рассмотрите возможность изменения строки хэш-банга с #!/bin/sh
на #!/bin/bash
.