Bash 日期没有这样的文件或目录

Bash 日期没有这样的文件或目录,bash,shell,scripting,Bash,Shell,Scripting,我正在尝试编写一些无法用date命令正确输出的脚本。以下是我到目前为止所掌握的内容: #!/bin/bash # Get RPM manifest # Output written to /tmp NOW=$(date +%D) rpm -qa --qf="%{NAME}.%{ARCH}\n" | sort > /tmp/$HOSTNAME.RPM_Manifest.$NOW.txt 运行此脚本时,我收到以下消息: [root@linmachine1 ~]# sh /usr/loca

我正在尝试编写一些无法用date命令正确输出的脚本。以下是我到目前为止所掌握的内容:

#!/bin/bash
# Get RPM manifest
# Output written to /tmp

NOW=$(date +%D)

rpm -qa --qf="%{NAME}.%{ARCH}\n" | sort > /tmp/$HOSTNAME.RPM_Manifest.$NOW.txt
运行此脚本时,我收到以下消息:

[root@linmachine1 ~]# sh /usr/local/bin/rpm_manifest.sh
/usr/local/bin/rpm_manifest.sh: line 7: /tmp/linmachine1.RPM_Manifest.03/01/17.txt: No such file or directory
我怀疑问题在于我正在定义的NOW变量中的日期格式可能是罪魁祸首。我试过引用和不引用,得到了同样的结果。查看手册页,我没有看到改变默认行为的方法,比如用点替换前斜杠,因为我相信这就是问题所在


编辑:谢谢你的回复。但我不太清楚为什么会被否决。我问了一个合理的问题。给出了什么?

是的,文件名中不应该有斜杠

使用:


相反,或者将
替换为任何您喜欢的作为旁注,如果您有
bash
shebang,请不要使用
sh
运行程序。使用
chmod+x
使文件可执行并直接运行,或者使用
bash
运行文件,只需引用文件名:
sort>“/tmp/$HOSTNAME….txt”
错误消息非常明确-
date
根本不是问题,而是打开输出文件的问题(这发生在shell开始
date
之前),因为它试图在一个不存在的目录
/tmp/linmachine1.RPM\u Manifest.03/01
中创建
17.txt
。我想
now=$(date-date“+%d.%m.%Y”)中额外的
日期是一个输入错误
now=$(date "+%d.%m.%Y") 

rpm -qa --qf="%{NAME}.%{ARCH}\n" | sort > "/tmp/$HOSTNAME.RPM_Manifest.$now.txt"