2016-10-03 29 views
0

我在寫一個bash腳本來複制一些配置文件。我使用sudo bash configure.sh運行該文件。bash腳本文件用文件名中的其他字符複製

#!/bin/bash 
cp config/ocr_pattern /usr/share/tesseract-ocr/tessdata/ocr_pattern 
cp config/ocr_config /usr/share/tesseract-ocr/tessdata/tessconfigs/ocr_config 

然而,當我觀看所作的更改,ocr_config被正確複製的,但ocr_pattern被複制與ocr_pattern?作爲文件名,而不是ocr_pattern。在ocr_pattern的文件名中有一個額外的字符?。這裏有什麼問題?

cat -A 

#!/bin/bash^M 
cp config/ocr_pattern /usr/share/tesseract-ocr/tessdata/ocr_pattern^M 
cp config/ocr_config /usr/share/tesseract-ocr/tessdata/tessconfigs/ocr_config 
+0

你有沒有在你的代碼三個時期?如果是這樣,你不應該 – user2182349

+0

我不明白你的問題 - 也許你可以澄清一點 – user2182349

+1

你的腳本中** file1 **之後可能有一個流浪的尾字符。 – user2182349

回答

2

如圖由cat -A輸出,則必須在使提到的問題的一些線的端回車(\r)。

刪除那些:

sed -i 's/\r$//' configure.sh 

或只使用dos2unix

dos2unix configure.sh