2016-08-15 31 views
0

我需要爲腳本自動完成。Unix bash完整函數+ Ruby 2.3

在bash,我可以運行類似complete -W 'foo bar baz' my_script,也將努力

但是當我嘗試運行紅寶石此命令時,我得到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

'complete'是一個內置的bash;從Ruby運行它毫無意義。 – tripleee

+0

A也這麼認爲,但我仍然有這個問題並且命令不起作用:( –

回答

0

我不知道你想從中實現什麼,但自從complete是一個bash功能,您需要使用bash運行您的shell命令,即bash -c complete ...

無論你需要使用system(....)還是反引號,取決於你想要對結果做什麼。儘管......

+0

這不會產生任何錯誤,但什麼也不做)'完成-W'foo bar'my_script'工作,'bash -c完成-W' foo bar'my_script' not。 –

+0

你的引號是錯誤的。你想'bash -c'完成-W「foo bar」my_script''或可能'bash -c「完成-W'foo bar'my_script」'如果你真的* foo bar *的值不知何故需要單引號。 – tripleee