繁体   English   中英

Shell脚本源:未找到

[英]Shell Script Source: Not Found

我正在运行以下简单脚本来测试代码块:

#!/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中的评论,看起来脚本的错误源自==> source:not found。 当我在CLI输入此代码时,代码工作正常。 出于某种原因,我无法通过shell脚本执行此代码。

任何意见,将不胜感激。

你的shebang线说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

权限正确后,只需要第二行。 还有一些小的额外警告,这就是为什么一些忙碌的开发人员有时会为即时问题提供最简单的指示。

chmod + x $ HOME / .nvm / nvm.sh

然后

sh $ HOME / .nvm / nvm.sh或。 $ HOME / .nvm / nvm.sh

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM