gpt4 book ai didi

linux - Bash 脚本将特殊字符添加到我创建的任何文件的末尾

转载 作者:太空宇宙 更新时间:2023-11-04 11:09:09 25 4
gpt4 key购买 nike

我正在创建一个 bash 脚本来创建备份,但是 bash 脚本 mkdir 正在用末尾的某种特殊字符命名文件夹。如果我 ls 目录名称显示为?我知道最后是显示无法识别的特殊字符的终端方式。

如何让我的 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

最佳答案

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

您可以使用dos2unix

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

关于linux - Bash 脚本将特殊字符添加到我创建的任何文件的末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23980217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com