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?
当前回答
我刚刚在bash脚本中出现了这个错误。问题是在前一行的末尾出现了一个意外的\错误。
其他回答
你有一个名为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$
另一个可能导致“模糊重定向”的东西是你所写的变量名中的\t \n \r
也许不是\n\r?但宁可慎之又慎
试试这个
echo "a" > ${output_name//[$'\t\n\r']}
我在解析HTML时遇到了这个问题,tab \t在行首。
在${OUPUT_RESULTS}中指定的路径是否包含任何空白字符?如果是这样,你可能要考虑使用……>> "${OUPUT_RESULTS}"(使用引号)。
(你也可以考虑将你的变量重命名为${OUTPUT_RESULTS})
如果在shell命令中使用变量名,则必须将其与+号连接。
例如:
如果您有两个文件,并且您不打算硬编码文件名,而是希望使用变量名 "input.txt" = x "output.txt" = y
然后('shell command within quotes' + x > + y)
它将以这种方式工作,特别是如果你在os的python程序中使用它。系统命令可能
这也可能是事实。
您没有在变量中指定文件并将输出重定向到该文件,那么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变量没有正确设置,所以也要注意这一点。 顺便说一下,这段代码将打印控制台上的所有内容及其文件名。