linux - 在 bash 脚本中发出回显变量

标签 linux bash shell

我正在编写一个脚本,以不同的格式回显登录时的日期,但是一旦我开始回显结果,它就会给我一个困惑的输出。我一直在网上搜索,看看我是否调用了错误的变量或在某处使用了错误的刻度,但没有运气。我什至在问题回显之前和之后回显了每个单独的变量,它们回显了正确的日期/月份/星期几。 因为我的脚本现在是这样,它在运行时只会输出“. which is a Thu”。另外,我一直在用“sh ./datescript.sh”执行它任何帮助/其他资源将不胜感激。谢谢!

我的脚本:

#!/usr/bin/env bash
date=`date`     #NOTE: date being used in two different ways
day=`echo ${date} | cut -f1 -d' '`
month=`echo ${date} | cut -f2 -d' '`
date=`echo ${date} | cut -f3 -d' '`
echo "Today is the ${date}th day of ${month}, which is a ${day}."
echo $day
echo $month
echo $date

最佳答案

如果我在月末和日期分配行添加 $'\r',我可以复制该行为。似乎是 Win/*nix 行结束问题。

在脚本上运行 dos2unixfromdos 来修复它。

关于linux - 在 bash 脚本中发出回显变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27298669/

相关文章:

python - python multiprocessing 出现奇怪的进程克隆

linux - 没有功能键的扩展到重复的监控脚本

linux - Bash 脚本不返回任何输出

c - 在我自己的简单 shell 中进行管道传输和重定向

arrays - 使用其中包含空格的元素创建 Bash 数组

linux - 在两个文件之间创建硬链接(hard link)

linux - 是否可以使用 Linux sort 命令按每行末尾的数字对巨大的文本文件进行排序?

bash - 如何在 shell 中的指定行号中添加或删除字符?

java - BufferedWriter 未写入文件

bash - 使用 ffmpeg 将 .wav 转换为 .mp3 需要什么编解码器?