2014-12-04 89 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