dev*_*fun 5 shell bash io-redirection
我有一个带有函数的脚本:
function install_log() {
echo "$1" >> $INSTALL_LOG_OUTPUT 2>&1
}
Run Code Online (Sandbox Code Playgroud)
此功能正常工作。它是一种将某些内容写入日志文件的功能。
我在脚本中添加了一些其他命令,用于读取脚本的给定参数:
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"
Run Code Online (Sandbox Code Playgroud)
但是使用新行,我收到了一些不需要的消息:
$INSTALL_LOG_OUTPUT: ambiguous redirect
Run Code Online (Sandbox Code Playgroud)
我发现,这来自两行
install_log "-> parameter $argument"
# ...
install_log "# AUTOMATIC_INSTALL: $AUTOMATIC_INSTALL"
Run Code Online (Sandbox Code Playgroud)
有谁知道,为什么会出现这些消息。
在您的函数中将 INSTALL_LOG_OUTPUT 引号括起来,如下所示:
function install_log() {
echo "$1" >> "$INSTALL_LOG_OUTPUT" 2>&1
}
Run Code Online (Sandbox Code Playgroud)
再次运行脚本后,您可能会收到一条错误消息,指示 INSTALL_LOG_OUTPUT 为空,并带有以下类型的消息:bash: : No such file or directory。
| 归档时间: |
|
| 查看次数: |
42454 次 |
| 最近记录: |