我有一个bash脚本,它在内部调用Ruby脚本,根据情况有时Ruby脚本会提示用户选择;我怎样才能做到这一点?
主要Bash脚本:
#!/usr/bash
for host_name in `./myruby.rb -a xxx -b xxx`
do
echo -e "$host_name"
done
包装myruby.rb
#!/usr/bin/ruby
.....
......
puts "enter your selection ?"
user_selection = $stdin.gets
如果我直接运行Ruby,它运行正常,但是当我从bash运行它时,它不会提示用户输入;而是它的悬挂。
答案 0 :(得分:1)
ruby脚本从stdin读取,因此即使从bash调用,你也需要在stdin上提供一些东西。你可以这样做:
$(rubyscript <<< "selection")
$()构造与反引号相同 &lt;&lt;&lt;&lt;&lt;提供字符串“selection”作为rubyscript的stdin输入。
或者你可以在bash脚本“挂起”
时自己输入答案