在bash脚本中发出回显变量

时间:2014-12-04 16:11:28

标签: linux bash shell

我正在编写一个脚本,以不同的格式在登录时回显日期,但是一旦我开始回应结果,它就会给我一个混乱的输出。我一直在网上搜索,看看我是否错误地调用了变量或者在某处使用了错误的刻度,但没有运气。我甚至在问题回声之前和之后回应了每个单独的变量,它们回显正确的日期/月/星期。 由于我的剧本现在正在播出,它只会推出"。这是一个星期四"跑步的时候。另外,我一直用" 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

2 个答案:

答案 0 :(得分:2)

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

在脚本上运行dos2unixfromdos进行修复。

答案 1 :(得分:2)

#!/usr/bin/env bash

day=`date +%A`
month=`date +%B`
date=`date +%-d`

echo "Today is the ${date}th day of ${month}, which is a ${day}."
echo $day
echo $month
echo $date