Bash脚本中的下面一行
echo $AAAA" "$DDDD" "$MOL_TAG >> ${OUPUT_RESULTS}
给我这个错误:
line 46: ${OUPUT_RESULTS}: ambiguous redirect
Why?
Bash脚本中的下面一行
echo $AAAA" "$DDDD" "$MOL_TAG >> ${OUPUT_RESULTS}
给我这个错误:
line 46: ${OUPUT_RESULTS}: ambiguous redirect
Why?
当前回答
你有一个名为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$
其他回答
你有一个名为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$
在${OUPUT_RESULTS}中指定的路径是否包含任何空白字符?如果是这样,你可能要考虑使用……>> "${OUPUT_RESULTS}"(使用引号)。
(你也可以考虑将你的变量重命名为${OUTPUT_RESULTS})
在我的例子中,这是一个有用的警告,因为目标变量(不是文件)拼写错误并且不存在。
echo "ja" >> $doesNotExist
导致
./howdy.sh: line 4: $doesNotExist: ambiguous redirect
如果你在这里试图用GitHub动作调试这个“模糊重定向”错误。我强烈建议这样尝试:
echo "MY_VAR=foobar" >> $GITHUB_ENV
我使用$GITHUB_ENV所经历的行为是,它将其添加到管道环境变量中,如我的示例所示MY_VAR
这也可能是事实。
您没有在变量中指定文件并将输出重定向到该文件,那么bash将抛出此错误。
files=`ls`
out_file = /path/to/output_file.t
for i in `echo "$files"`;
do
content=`cat $i`
echo "${content} ${i}" >> ${out_file}
done
Out_file变量没有正确设置,所以也要注意这一点。 顺便说一下,这段代码将打印控制台上的所有内容及其文件名。