嗨,我有一个带有 shell 脚本的文件,看起来像这样
#!/bin/bash
todayDate=$(date)
echo "Today's date is ${todayDate}. have a nice weekend!"
但是当我在我的 ubuntu 终端中调用这个文件时,我得到了这样的结果
. have a nice weekend!eb 12 22:29:00 CET 2022
为什么不显示
Today's date is Sat Feb 12 22:31:55 CET 2022. have a nice weekend!
?? 下图是 ubuntu 在终端显示奇怪回声的证据
有人让我上传 ls -alh 的结果。这是结果
total 0
drwx------ 1 username username 512 Feb 12 22:07
drwx------ 1 username username 512 Feb 12 21:57
-rwx------ 1 username username 77 Feb 12 22:41 4Bbash
您的文件有 Windows 行结尾
\r\n
。\r
表示“回车”(回到行首)\n
表示“换行”(转到下一行)。Unix 仅用
\n
作行尾。因此,您的变量
todayDate
将\r
在末尾包含 a 。这会将光标放回第一个位置,并且它之后的文本会覆盖以前的文本。将您的文本编辑器设置为使用 Unix 换行符(换行)或用于
dos2unix
修复您的文件。检查这个或这个。