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)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真正让我感到奇怪的是,它仍然运行着这个应用程序(如果我做了一个npm install手动).。由于无法使它正常工作,并且怀疑文件本身有一些奇怪的地方,所以我这次使用VIM在Mac上直接创建了一个新的文件。我输入了完全相同的指令然后.。现在它的工作没有任何问题。这两个文件的差异显示了完全零的差别。有什么不同吗?什么能使第一个脚本不工作?我怎么知道呢?更新在接受了答案的命令之后,在错误的行结尾返回后,我检查了多个内容。因为我复制了我的~/.gitconfig在我的Windows机器上autocrlf=true,所以每次在Windows下修改bash文件时,它都会将行尾重新设置为\r\n.因此,除了运行dos2unix(您必须在Mac上使用HOMEBREW安装它)之外,如果您正在使用Git,请检查您的配置。
- 3 回答
- 0 关注
- 582 浏览
添加回答
举报
0/150
提交
取消