文件重命名不正确

文件重命名不正确

我有一个根据配置重命名文件的脚本。通过重命名 $last 上的文件,它添加了一个空格,因此程序无法正常工作。可能是什么问题?

配置文件https://configmaker.com/my/TintedRawRubberyChafer.txt

代码

#!/bin/bash

while true 
    do 

    wget https://configmaker.com/my/TintedRawRubberyChafer.txt

    source TintedRawRubberyChafer.txt

    if [-e $curr]; then
        echo "Make changes"
        mv claymore.stub.conf $last
        mv $curr claymore.stub.conf
    fi

    rm TintedRawRubberyChafer.txt | echo "removed"

    sleep 60

done

exit 0

问题是,控制台的输出是 'claymore.stub.conf' -> 'zcash'$'\r'。但一定不能有'\r'

答案1

你的 '\r' 来自https://configmaker.com/my/TintedRawRubberyChafer.txt它有两个缺陷:

  • tr -d '\r'它的行以 CR-LF 结尾(用 或dos2unixsed、等更改vim
  • 它的最后一行不是 LF 终止的

所以 bash 假设你的意思是last=$'zcash\r'.

此外:

  • 除非确实必要,否则应该引用变量("$last"$last
  • [-e $curr]应该写成[ -e $curr ],或者最好[ -e "$curr" ](空格很重要)
  • | echo不需要管道。只需echo单独放置一行即可。
  • 由于您不检查错误,因此您的++wget可以简单地写成:sourcerm

    来源 <(wget -O-https://configmaker.com/my/TintedRawRubberyChafer.txt

相关内容