用于输入的Bash包装器脚本提示

时间:2013-01-30 10:10:41

标签: bash

我有一个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运行它时,它不会提示用户输入;而是它的悬挂。

1 个答案:

答案 0 :(得分:1)

ruby​​脚本从stdin读取,因此即使从bash调用,你也需要在stdin上提供一些东西。你可以这样做:

$(rubyscript <<< "selection") 

$()构造与反引号相同 &lt;&lt;&lt;&lt;&lt;提供字符串“selection”作为rubyscript的stdin输入。

或者你可以在bash脚本“挂起”

时自己输入答案