在我的ruby脚本中,我需要读取一个用户条目,它是一个路径。
因此,我想读取与终端(使用TAB)相同类型的自动完成功能的用户条目。
因为我没有找到一种简单的方法,所以我考虑使用bash命令:
path = `read -e -p "Enter your path: "`
但是我得到一个错误:
``': No such file or directory - read -e (Errno::ENOENT)
如果有人对此错误有任何解释或执行此操作的红宝石解决方案,那将是很好的:)
提前致谢。
编辑:
似乎我不太清楚:我想(在ruby脚本中间)获取用户条目,例如:
path = STDIN.gets.chomp
但是有了gets,就不会自动完成路径。所以我想知道是否有一种简单的方法可以将gets(或任何其他方法)与自动完成一起使用。
因为我不知道任何解决方案,所以我尝试将bash命令read
与-e选项一起使用。这在终端中很好用,但是当我将其放入带引号包围的红宝石脚本中时,出现上述错误。
事实上 :
#! /bin/bash
read -e -p "Enter your path: "
echo $REPLY
运作良好,而
#! /usr/bin/env ruby
`read -e -p "Enter your path: "`
`echo $REPLY`
不起作用->为什么呢?
它不能与bash命令一起使用。尝试使用thor,例如:
require "thor"
class MyCLI < Thor
desc "path /path/to/file", "select path"
def path(p)
puts "selected path #{p}"
end
end
MyCLI.start(ARGV)
然后在consol中自动完成路径
$ ruby ./t.rb path /home…
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句