Tentando comparar uma variável que é multilinha em uma comparação if

2

Aqui está o arquivo atual que estou executando:

#!/bin/ksh -x

export BIN_DIR="../../env"
. $BIN_DIR/vdenv.ksh

success="DROP
CREATE TABLE
GRANT"

$worker_dir/runsql.ksh ddl X X > chnl_avt_v1.log
result=$(sed -e '/DROP/,/GRANT/!d' chnl_avt_v1.log)

if [ "$result" -eq "success" ]; then
       echo "hi"
else 
       echo "NOO"
fi

Abaixo está o erro que recebo, embora eu saiba que tanto $ sucesso quanto $ resultado são os mesmos.     resultado = DROP     CRIAR A TABELA     CONCEDER     + [DROP     CRIAR A TABELA     GRANT-eq success]     master_list_ddl.ksh [13]: DROP ^ JCREATE TABLE ^ JGRANT: erro de sintaxe     + eco NOO     NOO

    
por user68288 22.05.2014 / 17:34

1 resposta

1

Você tem um erro ao acessar a variável success e o operador de comparação incorreto:

if [ "$result" -eq "success" ]; then

obviamente deve ser

if [ "$result" = "$success" ]; then
    
por 22.05.2014 / 18:12

Tags