我正在创建一个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
cat -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
答案 0 :(得分:1)
^M
输出中的CR
(cat -A
)字符是问题:shell仅将LF
视为"行的结尾"标记,前面的CR
字符成为前一个单词的一部分。只有' /'和' \ 0' POSIX(ish)系统中的路径名中禁止使用字符。
您可以使用dos2unix
或
vim yourfile.sh
:set ff=unix
:wq