好吧,我是一個linux新手,我遇到了一個簡單的bash腳本問題。將時間戳記添加到BASH中的mv文件名
我有一個程序在運行時添加到日誌文件中。隨着時間的推移,日誌文件變得巨大我想創建一個啓動腳本,它將在每次運行之前重命名並移動日誌文件,從而有效地爲程序的每次運行創建單獨的日誌文件。下面是我到目前爲止有:
DATE=$(date +"%Y%m%d%H%M")
mv server.log logs/$DATE.log
echo program
在運行的時候,我看到:
: command not found
program
當我cd到日誌目錄並運行目錄,我看到這一點:
201111211437\r.log\r
發生了什麼事?我假設我缺少一些語法問題,但我似乎無法弄清楚。
UPDATE:感謝shellter下面的評論中,我發現這個問題是由於我正在編輯在記事本++的sh文件中的窗口,然後通過FTP發送到服務器的事實,我通過ssh運行該文件。在文件上運行dos2unix後,它可以正常工作。
新問題:如何在第一時間正確保存文件,以避免每次重新發送文件時都必須執行此修復?
'\ r'是carriage_return,檢查你的bash腳本,可能包含腳本 – ajreal
內回車從哪裏來?我猜''logs/$ DATE.log'是錯誤的,但是輸入'echo logs/$ DATE.log'會輸出正確的路徑。 – Cat5InTheCradle
我怎麼知道?請附上相應的bash腳本,可能有不明顯的whitepspaces – ajreal