我的 ubuntu 以奇怪的方式显示 shell 脚本回显

我的 ubuntu 以奇怪的方式显示 shell 脚本回显

你好我有一个包含 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

图片版本: 在此处输入图片描述

答案1

您的文件有 Windows 行结尾\r\n

  • \r表示“回车”(回到行首)
  • \n表示“换行”(转到下一行)。

Unix 仅将其用作\n行尾。

因此,您的变量todayDate将在末尾包含一个\r。这会将光标放回到第一个位置,并且其后的文本将覆盖先前的文本。

将文本编辑器设置为使用 Unix 行尾(换行符)或使用dos2unix来修复文件。检查或者

相关内容