0

我有一个内部调用 Ruby 脚本的 bash 脚本,根据情况有时 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 运行它时,它不会提示用户输入;而是挂着。

4

1 回答 1

1

ruby 脚本从标准输入读取,因此即使从 bash 调用,您也需要在标准输入上提供一些内容。你可以这样做:

$(rubyscript <<< "selection") 

$() 构造与反引号相同 <<< 提供字符串“选择”作为 ruby​​script 标准输入的输入。

或者您可以在 bash 脚本“挂起”时自己输入答案

于 2013-01-30T10:36:26.597 回答