Unix bash完整功能+ Ruby 2.3

时间:2016-08-15 12:55:31

标签: ruby bash unix

我需要为脚本自动完成。

在bash中,我可以运行类似complete -W 'foo bar baz' my_script的内容,它可以正常运行

但是当我尝试在ruby中运行此命令时,我得到Errno::ENOENT: No such file or directory - complete

Ruby代码可能是:

`complete -W 'foo bar baz' my_script`
exec "complete -W 'foo bar baz' my_script"
system "complete -W 'foo bar baz' my_script"

使用open3,open4,IO我得到了相同的结果

1 个答案:

答案 0 :(得分:0)

我不知道你想从中实现什么,但由于complete是一个bash功能,你需要使用bash运行你的shell命令,即bash -c complete ...

是否必须使用system(....)或反引号,取决于您要对结果执行的操作。你不太可能真的想要exec,不过......