Como resolver esse "redirecionamento ambíguo"

0

Eu tenho um script com uma função:

function install_log() {
    echo "$1" >> $INSTALL_LOG_OUTPUT 2>&1
}

Esta função está funcionando como deveria. É uma função para escrever algo em um arquivo de log.

Eu adicionei alguns outros comandos ao script, para ler os parâmetros fornecidos do script:

AUTOMATIC_INSTALL=

for argument in "$@"
do
    install_log "-> parameter $argument"
    if [ "$argument" == "--automatic" ] || ["$argument" == "-automatic" ]; then
        AUTOMATIC_INSTALL=True
    fi
done
install_log "# AUTOMATIC_INSTALL: $AUTOMATIC_INSTALL"

Mas com as novas linhas, recebo algumas mensagens desnecessárias:

$INSTALL_LOG_OUTPUT: ambiguous redirect

Descobri que isso vem das duas linhas

install_log "-> parameter $argument"
# ...
install_log "# AUTOMATIC_INSTALL: $AUTOMATIC_INSTALL"

Alguém sabe por que as mensagens estão ocorrendo.

    
por kristian 12.11.2015 / 13:19

1 resposta

2

Coloque aspas em torno de INSTALL_LOG_OUTPUT na sua função, assim:

function install_log() {
    echo "$1" >> "$INSTALL_LOG_OUTPUT" 2>&1
}

Depois de executar o script novamente, você provavelmente receberá uma mensagem de erro indicando que INSTALL_LOG_OUTPUT está vazio, com uma mensagem desse tipo: bash: : No such file or directory .

    
por 12.11.2015 / 15:11