我的Bash脚本中的以下行
echo $AAAA" "$DDDD" "$MOL_TAG >> ${OUPUT_RESULTS}
给我这个错误:
line 46: ${OUPUT_RESULTS}: ambiguous redirect
为什么?
发布于 2010-03-17 21:14:29
用引号括起你的变量。如果它碰巧有空格,它也会给你“歧义重定向”。还要检查你的拼写
echo $AAAA" "$DDDD" "$MOL_TAG >> "${OUPUT_RESULTS}"
例如不明确的重定向
$ var="file with spaces"
$ echo $AAAA" "$DDDD" "$MOL_TAG >> ${var}
bash: ${var}: ambiguous redirect
$ echo $AAAA" "$DDDD" "$MOL_TAG >> "${var}"
$ cat file\ with\ spaces
aaaa dddd mol_tag
发布于 2014-06-26 23:01:35
我最近发现,重定向文件名称中的空格会导致“歧义重定向”消息。
例如,如果您重定向到application$(date +%Y%m%d%k%M%S).log
并指定了错误的格式字符,则重定向将在上午10点之前失败。但是,如果您使用application$(date +%Y%m%d%H%M%S).log
,它将会成功。这是因为%k
格式生成上午9点的' 9'
,而%H
生成上午9点的'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
发布于 2010-03-17 21:13:46
${OUPUT_RESULTS}中指定的路径是否包含任何空格字符?如果是这样,您可能需要考虑使用... >> "${OUPUT_RESULTS}"
(使用引号)。
(您可能还想考虑将变量重命名为${OUTPUT_RESULTS}
)
https://stackoverflow.com/questions/2462385
复制相似问题