2011-01-13 64 views
6

我是Cygwin的新手,剛剛安裝了它並試圖設置一些簡單的環境變量。但是,當我打開命令shell時,出現錯誤「#357 \ 273 \ 277 command not found」Cygwin命令找不到在.bashrc中找到的錯誤字符357 273 277

我找到了一篇文章,討論問題是什麼以及如何「發現」隱藏的錯誤字符: http://mblog.lib.umich.edu/DataDiscussions/archives/2010/01/index.html 但我不知道如何通過刪除字符(我驗證是使用od命令在我的.bashrc文件中出現問題)來解決問題。我試圖將Notepad ++中的首選項視圖更改爲UTF-8和ANSI無效,但該文件根本沒有改變。

任何幫助,將不勝感激......

回答

8

在將文件送入cygwin bash之前,可以首先進行dos2unix轉換,以便注意CR LF等可能的衝突。打開慶典

名@主機〜 $ DOS2UNIX的your_file.sh

0

既然你已經編輯你的.bashrc之外的Cygwin和使用一個Windows編輯器,編輯器可能會打亂你的換行符(即CR,R等。 )您可以告訴Notepad ++顯示隱藏的字符。我認爲你可以在它的設置中找到它。改變字符集是一回事,但能夠看到隱藏的字符是另一回事。

0

This文章提到了一些程序,您可以使用它們將文本文件從一種標準轉換爲另一種。嘗試在文件上使用dos2unix(在cygwin命令行中)。

1

它看起來像如果我從UTF-8更改編碼 ANSI(不是視圖偏好),該文件將更新和特殊字符消失了,修復了「\ 357 \ 273 \ 277 command not found」問題。萬歲!

11

據我所知,與保存在記事本++爲UTF-8和Cygwin文件的一個常見問題是記事本++節省了字節順序標記默認爲UTF-8編碼的文件。這個BOM字符與Cygwin等類Unix環境並不完全兼容。

如果您在這些文件中需要unicode字符,那麼您可以嘗試在Notepad ++中使用「UTF-8 without BOM」編碼,否則可以使用ANSI或其他默認情況下不使用BOM的編碼。

除了編碼,請確保文件的保存與unix(LF)換行符。

1

解決這些問題的一種方法是在Linux中使用vi。如果你說

VI文件名

,然後在vi使用ed命令:SE fileencoding = ASCII

這將剝離出來的古怪人物。

您可以通過保存文件,然後在文件上運行od -c來確認。

之前: od -c changes.sql | head 0000000 357 273 277 I N S E R T I N T O'

After: od -c發生變化。sql |頭 0000000我的問題我的問題