Shell脚本和mv目录会创建额外的字符,但在cmd行上运行时不会创建字符

时间:2019-07-16 13:04:23

标签: linux bash sh

我需要在crontab作业中重命名目录,以便创建bash文件来运行脚本,该脚本将在运行mongodump命令之前移动文件夹。
当我在命令行上运行命令目录时,该目录已移动并重命名,没有任何多余的字符

当我运行move.sh时,该目录已移动,但目录名末尾带有?Rm -R /change071105^M也会出现。 任何见解都值得赞赏

检查move.sh中是否有其他字符。

目录已重命名,并且出现了所有文件。

使用以下命令创建了一个move.sh:

脚本中mv的继续将目录重命名为: change071105?不是预期的change071115

在命令行运行命令以确认

mv /mongo_backup/change /mongo_backup/change$(date --date='1 day ago' +'%m%d%y')

还检查了move.sh中是否有多余的空格。

 #!/bin/bash
    dd=$(date --date='1 day ago' +'%m%d%y')
    mv -v "/mongo_backup/change" "/mongo_backup/change$dd"
    #mv /mongo_backup/change /mongo_backup/change$(date --date='1 day ago' +'%m%d%y')

1 个答案:

答案 0 :(得分:0)

问题是在Windows计算机上的记事本中创建的,创建脚本时出现了其他字符:添加了mv -v,并且在运行脚本> sh时\ r出现在输出中

精细搜索及以下内容解决了此问题 sed -i's / \ r $ //'scriptname.sh