如何解决这个“不明确的重定向”

如何解决这个“不明确的重定向”

我有一个带有函数的脚本:

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

该功能正在正常工作。它是一个将某些内容写入日志文件的函数。

我在脚本中添加了一些其他命令,用于读取脚本的给定参数:

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"

但随着新行的出现,我收到了一些不需要的消息:

$INSTALL_LOG_OUTPUT: ambiguous redirect

我发现,这来自两条线

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

有谁知道为什么会出现这些消息。

答案1

在函数中的 INSTALL_LOG_OUTPUT 周围加上引号,如下所示:

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

再次运行脚本后,您可能会收到一条错误消息,指示 INSTALL_LOG_OUTPUT 为空,并显示以下消息:bash: : No such file or directory

相关内容