2015-12-09 42 views
0

我有一個簡短的shell腳本,用於創建備份。文件名後面的問題標記未顯示回顯

#!/bin/bash 
export MyBackup="MyBackup`date +%m-%d-%H:%M`" 
echo $MyBackup 
vi /tmp/$MyBackup.txt 
rm -rf /tmp/"$MyBackup" 

但是,創建的文件名與MyBackup12-09-08:46?.txt?類似。 echo命令返回正確的字符串,但vi命令創建一個帶有?的文件。如何在沒有這些的情況下創建文件?

大部分問題似乎都是關於編碼差異的討論,但是如果情況如此,我會認爲它會顯示不正確。

感謝

+1

我無法重現您所說的文件已創建。你有沒有機會在Windows上編輯這個文件?也許在行尾有隱藏的'\ r'字符? –

+1

另外,你知道你在'$ MyBackup.txt'上執行'vi',但是試圖刪除沒有'.txt'擴展名的'$ MyBackup',對吧? –

+0

我跑了'e ++ ff = unix',好像每一行都有一個^ M結尾。我試圖刪除這些,看看它是否可以解決這個問題。我原本是在Windows的Atom內部打開並保存的,但我沒有修改它。 – Proximus

回答

0

我跑了e ++ ff = unix,好像每一行都有一個^ M在它們的末尾,所以我刪除了它們。

0

更換vitouch只創建一個空文件。

+0

如果我要做類似mysqldump的事情,它是否會創建一個文件?? – Proximus

+0

它應該按照您的預期正常創建文件。 –

+1

這並沒有真正回答這個問題,所以應該是一個評論 –