Ao tentar verificar se um banco de dados remoto existe ou não, estou vendo um comportamento misto com uma instrução condicional.
Tecnicamente, a instrução está funcionando (ela relata corretamente se o banco de dados foi encontrado), mas na falha (nenhum banco de dados foi encontrado), está lançando um erro que não consigo rastrear por algum motivo.
REMOTE_EXISTS=$(mysql --login-path=$REMOTE_HOST --batch --skip-column-names -e "SHOW DATABASES LIKE '"$REMOTE_DB"';" | grep "$REMOTE_DB")
if [[ $? != 0 ]]; then
die "Checking for $REMOTE_DB failed. Please report this error."
elif [[ $REMOTE_EXISTS ]]; then
vrb "The database '$REMOTE_DB' has been found to exist on '$REMOTE_HOST'. Proceeding."
else
die "Oops! We couldn't find '$REMOTE_DB' on the '$REMOTE_HOST' server. Are you sure it's there?"
fi
Não tenho certeza onde estou indo errado. Os detalhes de login estão sendo passados através de configurações armazenadas de mysql_config_editor
, o que me leva a acreditar que algo está fundamentalmente errado com a configuração da minha condição ou método.
Infelizmente, o erro é vago e está preso em uma armadilha no meu script, então a reportagem é um pouco confusa. Além disso, eu tentei o seguinte também:
[ "$REMOTE_EXISTS" -eq 0 ]
[[ "$REMOTE_EXISTS" ]]
Sem melhor sorte.
A ajuda é apreciada, obrigado!