Bash脚本中的下面一行

 echo $AAAA"     "$DDDD"         "$MOL_TAG  >>  ${OUPUT_RESULTS}

给我这个错误:

 line 46: ${OUPUT_RESULTS}: ambiguous redirect

Why?


当前回答

另一个可能导致“模糊重定向”的东西是你所写的变量名中的\t \n \r

也许不是\n\r?但宁可慎之又慎

试试这个

echo "a" > ${output_name//[$'\t\n\r']}

我在解析HTML时遇到了这个问题,tab \t在行首。

其他回答

对于我的例子,如果我通过env指定输出文件(例如$ENV_OF_LOG_FILE),那么将得到错误模糊重定向。

但是,如果我使用纯文本作为文件路径(例如/path/to/log_file),那么就没有错误。

我最近发现重定向文件名称中的空格会导致“模糊重定向”消息。

例如,如果重定向到应用程序$(date +%Y%m%d%k% m% S).log,并且指定了错误的格式化字符,则重定向将在上午10点之前失败。但是,如果您使用应用程序$(date +%Y%m%d%H% m% S).log则会成功。这是因为%k格式为9AM生成' 9',而%H格式为9AM生成'09'。

echo $(date +%Y%m%d%k% m% S)返回20140626 95138

echo $(date +%Y%m%d%H% m% S)返回20140626095138

错误的日期可能会给出如下内容:

echo "a" > myapp20140626 95138.log

以下是所期望的:

echo "a" > myapp20140626095138.log

另一个可能导致“模糊重定向”的东西是你所写的变量名中的\t \n \r

也许不是\n\r?但宁可慎之又慎

试试这个

echo "a" > ${output_name//[$'\t\n\r']}

我在解析HTML时遇到了这个问题,tab \t在行首。

如果你在这里试图用GitHub动作调试这个“模糊重定向”错误。我强烈建议这样尝试:

echo "MY_VAR=foobar" >> $GITHUB_ENV

我使用$GITHUB_ENV所经历的行为是,它将其添加到管道环境变量中,如我的示例所示MY_VAR

你有一个名为OUPUT_RESULTS的变量吗?还是更可能是OUTPUT_RESULTS?


michael@isolde:~/junk$ ABC=junk.txt
michael@isolde:~/junk$ echo "Booger" > $ABC
michael@isolde:~/junk$ echo "Booger" >> $ABB
bash: $ABB: ambiguous redirect
michael@isolde:~/junk$