Enviado em 25/10/2007 - 13:22h
Boa tarde.
Sou novo no mundo do shell script e estou a ter um erro num script que estou a fazer. Estou a ter o erro "./1teste.sh[11]: Syntax error at line 24 : `case' is not matched."
Pelo que me apercebi, o erro só aparece devido ao if no 2º parametro do case (2) echo "SIEBEL_CREATEBUILDINGANDUA_EAI:";).
Será que alguém me poderia ajudar a detectar e corrigir o erro?
Obrigado.
O script é o seguinte:
opcao=1
clear # limpar o ecrã
echo "\n\n"
echo "\t***********************"
echo "\t* Verificador *"
echo "\t* de estado *"
echo "\t***********************\n"
while [ $opcao != 0 ]; do
echo "______________________________________"
echo "| Processos |"
echo "|------------------------------------|"
echo "| 0 - Sair |"
echo "| 1 - SIEBEL_GETADDRESS_EAI |"
echo "| 2 - SIEBEL_CREATEBUILDINGANDUA_EAI |"
echo "|____________________________________|"
echo "\nProcesso a verificar: \\c" # o \\c é para manter o cursor na mm linha
read opcao
case $opcao in
1) echo "SIEBEL_GETADDRESS_EAI:";
# KISS_CUSTOMERCARE_01
bw1=KISS_CUSTOMERCARE_01;
l1=`ps -efx | grep $bw1`;
len1=`echo $l1 | wc -c`;
if [ $len1 -lt 100 ]; then
echo "\t$bw1: !! NOT OK !!";
else
echo "\t$bw1: OK";
fi;
# KISS_SYNCHRONOUS
bw2=KISS_SYNCHRONOUS;
l2=`ps -efx | grep $bw2`;
len2=`echo $l2 | wc -c`;
if [ $len2 -lt 100 ]; then
echo "\t$bw2: !! NOT OK !!";
else
echo "\t$bw2: OK";
fi;
# ADB_SYNCHRONIZE_ADDRESS
bw3=ADB_SYNCHRONIZE_ADDRESS;
l3=`ps -efx | grep $bw3`;
len3=`echo $l3 | wc -c`;
if [ $len3 -lt 100 ]; then
echo "\t$bw3: !! NOT OK !!";
else
echo "\t$bw3: OK";
fi;
# KISS_ADB_LEGACY_SINCRONOS
bw4=KISS_ADB_LEGACY_SINCRONOS;
l4=`ps -efx | grep $bw4`;
len4=`echo $l4 | wc -c`;
if [ $len4 -lt 100 ]; then
echo "\t$bw4: !! NOT OK !!";
else
echo "\t$bw4: OK";
fi;;
2) echo "SIEBEL_CREATEBUILDINGANDUA_EAI:";
# KISS_CUSTOMERCARE_01
bw1=KISS_CUSTOMERCARE_01;
l1=`ps -efx | grep $bw1`;
len1=`echo $l1 | wc -c`;
if [ $len1 -lt 100 ]; then
echo "\t$bw1: !! NOT OK !!";
else
echo "\t$bw4: OK";
fi;;
0) echo "Have fun"; exit 0;;
*) echo "Opção inválida!! Escolha uma nova opção";;
esac
done
Sou novo no mundo do shell script e estou a ter um erro num script que estou a fazer. Estou a ter o erro "./1teste.sh[11]: Syntax error at line 24 : `case' is not matched."
Pelo que me apercebi, o erro só aparece devido ao if no 2º parametro do case (2) echo "SIEBEL_CREATEBUILDINGANDUA_EAI:";).
Será que alguém me poderia ajudar a detectar e corrigir o erro?
Obrigado.
O script é o seguinte:
opcao=1
clear # limpar o ecrã
echo "\n\n"
echo "\t***********************"
echo "\t* Verificador *"
echo "\t* de estado *"
echo "\t***********************\n"
while [ $opcao != 0 ]; do
echo "______________________________________"
echo "| Processos |"
echo "|------------------------------------|"
echo "| 0 - Sair |"
echo "| 1 - SIEBEL_GETADDRESS_EAI |"
echo "| 2 - SIEBEL_CREATEBUILDINGANDUA_EAI |"
echo "|____________________________________|"
echo "\nProcesso a verificar: \\c" # o \\c é para manter o cursor na mm linha
read opcao
case $opcao in
1) echo "SIEBEL_GETADDRESS_EAI:";
# KISS_CUSTOMERCARE_01
bw1=KISS_CUSTOMERCARE_01;
l1=`ps -efx | grep $bw1`;
len1=`echo $l1 | wc -c`;
if [ $len1 -lt 100 ]; then
echo "\t$bw1: !! NOT OK !!";
else
echo "\t$bw1: OK";
fi;
# KISS_SYNCHRONOUS
bw2=KISS_SYNCHRONOUS;
l2=`ps -efx | grep $bw2`;
len2=`echo $l2 | wc -c`;
if [ $len2 -lt 100 ]; then
echo "\t$bw2: !! NOT OK !!";
else
echo "\t$bw2: OK";
fi;
# ADB_SYNCHRONIZE_ADDRESS
bw3=ADB_SYNCHRONIZE_ADDRESS;
l3=`ps -efx | grep $bw3`;
len3=`echo $l3 | wc -c`;
if [ $len3 -lt 100 ]; then
echo "\t$bw3: !! NOT OK !!";
else
echo "\t$bw3: OK";
fi;
# KISS_ADB_LEGACY_SINCRONOS
bw4=KISS_ADB_LEGACY_SINCRONOS;
l4=`ps -efx | grep $bw4`;
len4=`echo $l4 | wc -c`;
if [ $len4 -lt 100 ]; then
echo "\t$bw4: !! NOT OK !!";
else
echo "\t$bw4: OK";
fi;;
2) echo "SIEBEL_CREATEBUILDINGANDUA_EAI:";
# KISS_CUSTOMERCARE_01
bw1=KISS_CUSTOMERCARE_01;
l1=`ps -efx | grep $bw1`;
len1=`echo $l1 | wc -c`;
if [ $len1 -lt 100 ]; then
echo "\t$bw1: !! NOT OK !!";
else
echo "\t$bw4: OK";
fi;;
0) echo "Have fun"; exit 0;;
*) echo "Opção inválida!! Escolha uma nova opção";;
esac
done