Bash脚本在我创建的任何文件的末尾添加特殊字符

时间:2014-06-01 13:07:49

标签: linux bash

我正在创建一个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

1 个答案:

答案 0 :(得分:1)

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

您可以使用dos2unix

修复脚本
vim yourfile.sh
:set ff=unix
:wq