shell腳本對(duì)編碼和行尾是否敏感?我正在Mac上制作一個(gè)NW.js應(yīng)用程序,并希望通過雙擊圖標(biāo)在開發(fā)模式下運(yùn)行該應(yīng)用程序。第一步,我正在努力使我的shell腳本工作。在Windows上使用VSCode(我希望獲得時(shí)間),我創(chuàng)建了一個(gè)run-nw文件位于我的項(xiàng)目的根目錄下,包含以下內(nèi)容:#!/bin/bashcd "src"npm install
cd .../tools/nwjs-sdk-v0.17.3-osx-x64/nwjs.app/Contents/MacOS/nwjs "src" &但是我得到了這個(gè)輸出:$ 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)npm@3.10.3 /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真正讓我感到奇怪的是,它仍然運(yùn)行著這個(gè)應(yīng)用程序(如果我做了一個(gè)npm install手動(dòng)).。由于無法使它正常工作,并且懷疑文件本身有一些奇怪的地方,所以我這次使用VIM在Mac上直接創(chuàng)建了一個(gè)新的文件。我輸入了完全相同的指令然后.?,F(xiàn)在它的工作沒有任何問題。這兩個(gè)文件的差異顯示了完全零的差別。有什么不同嗎?什么能使第一個(gè)腳本不工作?我怎么知道呢?更新在接受了答案的命令之后,在錯(cuò)誤的行結(jié)尾返回后,我檢查了多個(gè)內(nèi)容。因?yàn)槲覐?fù)制了我的~/.gitconfig在我的Windows機(jī)器上autocrlf=true,所以每次在Windows下修改bash文件時(shí),它都會(huì)將行尾重新設(shè)置為\r\n.因此,除了運(yùn)行dos2unix(您必須在Mac上使用HOMEBREW安裝它)之外,如果您正在使用Git,請(qǐng)檢查您的配置。
shell腳本對(duì)編碼和行尾是否敏感?
慕碼人8056858
2019-06-03 16:15:29