我正在尝试编写一个shell脚本来在项目中执行我的rspecs,但是脚本给出了错误rspec: not found。
这是脚本..。
#!/bin/sh
command rspec spec spec/pos_spec.rb
$SHELL...outputs
/home/joebloggs/GitHub/repo/test: 2: /home/joebloggs/GitHub/repo/test: rspec: not found如果我直接在shell中输入rspec spec repo/pos_spec.rb行,它就可以工作,所以我不确定为什么它找不到rspec。我怎么才能让它工作呢?
发布于 2016-11-02 20:49:30
$ 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发布于 2016-11-04 03:47:21
所以我把它弄好了,我想我应该分享一下。
如果我双击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从终端运行它。
https://stackoverflow.com/questions/40376142
复制相似问题