我有一个带有函数的脚本:
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
。