2014-12-04 54 views
0

我正在处理脚本以不同格式登录时回显日期,但是一旦我回到结果回显中,它会给我一个混乱的输出。我一直在网上搜索,看看我是否调用了错误的变量或在某处使用了错误的剔号,但没有运气。我甚至在问题回声之前和之后回应了每个单独的变量,并且它们回应了适当的日期/月份/星期几。 由于我的脚本现在正在运行,它只会显示“。这是一个星期四”。此外,我一直在执行它与“sh ./datescript.sh”任何帮助/额外的资源,将不胜感激。谢谢!问题在bash脚本中回显变量

我的脚本:

#!/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

您的脚本在我的系统上正常工作。 – 2014-12-04 16:18:22

+0

好的...我将通过vi来尝试它,看看它是否有效。我在Notepad ++中编写它,并通过ftp复制。 – Xattle 2014-12-04 16:25:14

+1

@Xattle - 你可能想在运行dos2unix之前试图运行它 – 2014-12-04 16:26:53

回答

2

,如果我在的月份和日期分配行的末尾添加$'\r'我可以复制的行为。看起来像Win/* nix行结束问题。

运行dos2unixfromdos上脚本来解决它。

+0

这是一个Win/* nix的问题。一旦我通过vi来试用它,它工作得很好。切换到UTF-8编码也结束了工作。 – Xattle 2014-12-04 16:28:50

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