2016-10-03 8 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使用します:あなたはあなたのコード内の3つの期間を持っていますか

dos2unix configure.sh 
関連する問題