我正在创建一个bash脚本来创建备份,但是bash脚本mkdir在最后用一些特殊字符命名文件夹。如果我是目录,那么这个名字会出现一个?最后我知道的是终端显示未识别特殊字符的方式。
如何让bash脚本创建文件夹,而不在末尾添加这个无法识别的特殊字符。
如有任何帮助,我们将不胜感激。
见下面的脚本:

#!/bin/bash
mkdir -p "/var/backups/Backup"
mysqldump -u user1 -ptest DB tbl1 > "/var/backups/Backup/tbl1.sql"
DAY=$(date +%Y%m%d%H%M%S)
zip -r /var/backups/bkup-$DAY.zip /var/backups/Backup

A类显示如下:
#!/bin/bash^M$
mkdir -p "/var/backups/Backup"^M$
mysqldump -u user1 -ptest DB tbl1 > "/var/backups/Backup/tbl1.sql"^M$
DAY=$(date +%Y%m%d%H%M%S)^M$
zip -r /var/backups/bkup-$DAY.zip /var/backups/Backup

最佳答案

^M输出中的CRcat -A)字符是问题所在:shell仅将LF视为“行尾”标记,而前面的CR字符将成为前一个单词的一部分。在POSIX(ish)系统中,路径名中只禁止使用“/”和“\0”字符。
您可以使用dos2unix

vim yourfile.sh
:set ff=unix
:wq

10-08 16:02