我正在尝试编写一个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。我怎样才能让它发挥作用?
答案 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
从终端运行。