为了账号安全,请及时绑定邮箱和手机立即绑定

shell脚本对编码和行尾是否敏感?

shell脚本对编码和行尾是否敏感?

慕码人8056858 2019-06-03 16:15:29
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 回答

?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

在MAC/Linux上最简单的方法-使用“触摸”命令创建一个文件,用VI或VIM编辑器打开这个文件,粘贴您的代码并保存。这将自动删除窗口字符。


查看完整回答
反对 回复 2019-06-03
  • 3 回答
  • 0 关注
  • 582 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信