加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – Shell脚本来源:未找到

发布时间:2020-12-15 21:10:21 所属栏目:安全 来源:网络整理
导读:我正在运行以下简单脚本来测试代码块: #!/bin/bash # Load nvm and install latest production node source $HOME/.nvm/nvm.shnvm install v0.10.12nvm use v0.10.12 如果文件名是test.sh并带有上面的代码,我会收到以下错误: test.sh: 5: test.sh: source:
我正在运行以下简单脚本来测试代码块:

#!/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运行它,没有源命令.从表面上看,将源代码更改为一个点就可以解决问题,但当然,如果源文件包含任何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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读