作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在运行以下简单脚本来测试代码块:
#!/bin/bash
# Load nvm and install latest production node
source $HOME/.nvm/nvm.sh
nvm install v0.10.12
nvm use v0.10.12
如果文件名为 test.sh 与上面的代码,我得到以下错误:
test.sh: 5: test.sh: source: not found
test.sh: 6: test.sh: nvm: not found
test.sh: 7: test.sh: nvm: not found
根据我在 SO 中的评论,脚本错误似乎源自 ==> 来源:未找到。当我自己在 CLI 中键入此代码时,代码工作正常。由于某种原因,我无法通过 shell 脚本执行此代码。
如有任何建议,我们将不胜感激。
最佳答案
你的 shebang line说 Bash 但症状表明您正在使用 sh
运行它,它没有 source
命令。从表面上看,将 source
更改为一个点可以解决这个问题,但是当然,如果源文件包含任何 Bashisms,它将在这些文件上失败(也许更巧妙,结果不正确但没有错误消息) .
#!/bin/sh
# Load nvm and install latest production node
. $HOME/.nvm/nvm.sh
nvm install v0.10.12
nvm use v0.10.12
通常,最好将脚本标记为可执行,并让操作系统通过 shebang 机制选择正确的解释器;那么您不必记住脚本文件是否包含 Bash 命令或 sh
命令或 Python 代码或编译代码或其他任何内容,也不必注意它是否从一个版本更改为另一个版本。
所以代替
sh script
你会做
chmod +x ./script # the first time
./script
一旦权限正确,只需要第二行。还有一些小的额外注意事项,这就是为什么一些忙碌的开发人员有时会针对眼前的问题给出最简单的说明。
关于bash - Shell 脚本源 : Not Found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23506974/
我是一名优秀的程序员,十分优秀!