我正在尝试连接var(日期)和字符串以使文件具有当前日期名称。
我的代码。
days="$(date +"%Y%m%d_%H%M")"
echo "SKIP" > ${days}_EMERGENCY.txt
但是当我跑步时,我得到一个带有?的文件?在文件名中,如下所示:
我做错了吗?
修改
看着符号,?代表\ r \ n - 是不是因为我正在写记事本然后通过ftp上传.sh脚本?
编辑2
答案 0 :(得分:5)
我猜你的vi会使整个文件成为DOS风格,因此在echo语句的末尾会有另一个回车符
尝试dos2unix或使用允许您更改行结束样式或
的编辑器sed -i "s/$( printf '\015' )//g" yourscript
答案 1 :(得分:0)
它适用于我的系统(OS X),即使每个地方都有双引号。对于我使用的变体:
$> days="$(date +'%Y%m%d_%H%M')"
$> echo $days
20160601_1051
$> echo "SKIP" > ${days}_EMERGENCY.txt
$> ll ${days}_EMERGENCY.txt
-rw-r--r-- 1 user team 5 Jun 1 10:52 20160601_1051_EMERGENCY.txt
答案 2 :(得分:0)
尝试删除第一个变量赋值中的冗余双引号。
$ days=$(date +%Y%m%d_%H%M)
$ echo $days #see what output will get?
$ echo "SKIP" > ${days}_EMERGENCY.txt