shell腳本對編碼和行尾是否敏感?我正在Mac上制作一個NW.js應用程序,并希望通過雙擊圖標在開發模式下運行該應用程序。第一步,我正在努力使我的shell腳本工作。在Windows上使用VSCode(我希望獲得時間),我創建了一個run-nw文件位于我的項目的根目錄下,包含以下內容:#!/bin/bashcd "src"npm install
cd .../tools/nwjs-sdk-v0.17.3-osx-x64/nwjs.app/Contents/MacOS/nwjs "src" &但是我得到了這個輸出:$ sh ./run-nw: command not found
: No such file or directory
: command not found
: No such file or directory
Usage: npm <command>where <command> is one of: (snip commands list)(snip npm help)[email protected] /usr/local/lib/node_modules/npm
: command not found
: No such file or directory
: command not found我真的不明白:它似乎以空行作為命令。在我的編輯器(VSCode)中,我試圖替換\r\n帶著\n(以防\r(制造問題)但沒有改變什么。它似乎找不到文件夾(不管有沒有dirname),或者它可能不知道cd指揮部?似乎它不明白install爭論npm真正讓我感到奇怪的是,它仍然運行著這個應用程序(如果我做了一個npm install手動).。由于無法使它正常工作,并且懷疑文件本身有一些奇怪的地方,所以我這次使用VIM在Mac上直接創建了一個新的文件。我輸入了完全相同的指令然后.。現在它的工作沒有任何問題。這兩個文件的差異顯示了完全零的差別。有什么不同嗎?什么能使第一個腳本不工作?我怎么知道呢?更新在接受了答案的命令之后,在錯誤的行結尾返回后,我檢查了多個內容。因為我復制了我的~/.gitconfig在我的Windows機器上autocrlf=true,所以每次在Windows下修改bash文件時,它都會將行尾重新設置為\r\n.因此,除了運行dos2unix(您必須在Mac上使用HOMEBREW安裝它)之外,如果您正在使用Git,請檢查您的配置。
shell腳本對編碼和行尾是否敏感?
慕碼人8056858
2019-06-03 16:15:29