首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从shell脚本运行时找不到Rspec

从shell脚本运行时找不到Rspec
EN

Stack Overflow用户
提问于 2016-11-02 17:12:26
回答 2查看 562关注 0票数 0

我正在尝试编写一个shell脚本来在项目中执行我的rspecs,但是脚本给出了错误rspec: not found

这是脚本..。

代码语言:javascript
复制
#!/bin/sh
command rspec spec spec/pos_spec.rb
$SHELL

...outputs

代码语言:javascript
复制
/home/joebloggs/GitHub/repo/test: 2: /home/joebloggs/GitHub/repo/test: rspec: not found

如果我直接在shell中输入rspec spec repo/pos_spec.rb行,它就可以工作,所以我不确定为什么它找不到rspec。我怎么才能让它工作呢?

EN

回答 2

Stack Overflow用户

发布于 2016-11-02 20:49:30

代码语言:javascript
复制
$ echo 'rspec spec/models/employers_spec.rb' > my_shell.sh
$ sh my_shell.sh

输出:

代码语言:javascript
复制
Finished in 4.48 seconds
1 example, 0 failures
Randomized with seed 9820
票数 0
EN

Stack Overflow用户

发布于 2016-11-04 03:47:21

所以我把它弄好了,我想我应该分享一下。

如果我双击sh文件,它会打开一个终端,但失败了。我确定这是因为PATH变量不完整。更具体地说,它缺少这些条目...

代码语言:javascript
复制
/home/joebloggs/.rvm/gems/ruby-2.3.0/bin:
/home/joebloggs/.rvm/gems/ruby-2.3.0@global/bin:
/home/joebloggs/.rvm/rubies/ruby-2.3.0/bin:

但是,如果我随后使用与脚本失败完全相同的终端,因为它找不到rspec命令,然后运行./test.sh,它就可以工作。我也可以直接输入rspec spec spec/pos_spec.rb,它也可以工作。因此,双击脚本似乎会立即更改PATH变量?

无论如何,我不会将此标记为正确答案,因为它不能解决原始问题。

TLDR:不要双击sh文件,使用./script.sh从终端运行它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40376142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档