从shell脚本运行时找不到Rspec

时间:2016-11-02 09:12:26

标签: ruby shell rspec

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

这是剧本......

#!/bin/sh
command rspec spec spec/pos_spec.rb
$SHELL

...输出

/home/joebloggs/GitHub/repo/test: 2: /home/joebloggs/GitHub/repo/test: rspec: not found

如果我直接在shell中输入代码行rspec spec repo/pos_spec.rb,那么我不确定为什么它找不到rspec。我怎样才能让它发挥作用?

2 个答案:

答案 0 :(得分:0)

$ echo 'rspec spec/models/employers_spec.rb' > my_shell.sh
$ sh my_shell.sh

<强>输出:

Finished in 4.48 seconds
1 example, 0 failures
Randomized with seed 9820

答案 1 :(得分:0)

所以我有点工作,并且认为我会分享。

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

/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从终端运行。