【发布时间】:2021-04-19 12:52:40
【问题描述】:
我是 shell 脚本的新手。我正在使用source 命令获取一个在Windows 中创建并具有回车符的文件。在我添加一些字符后,它总是出现在行首。
test.dat(末尾有回车):
testVar=value123
testScript.sh(以上文件来源):
source test.dat
echo $testVar got it
我得到的输出是
got it23
如何从变量中删除'\r'?
【问题讨论】:
-
当你在Windows中编写了Linux脚本时,你需要将整个文件进行转换,以便在运行之前删除所有的回车符,否则你会遇到各种各样的问题。尝试替换单个回车可能会解决一些问题,但会出现其他问题。对我来说,通常是关于被截断的行的消息。因此,最好使用
dos2unix之类的程序转换整个文件。 -
它当然是旧的,但这个 oneliner 也应该这样做。
echo ${testVar%'\r'}