0

Rubyスクリプトがユーザーの選択を求める場合がある状況に基づいて、Rubyスクリプトを内部的に呼び出すbashスクリプトがあります。どうすればこれを可能にできますか?

メイン 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 スクリプトは stdin から読み取るため、bash から呼び出された場合でも stdin に何かを提供する必要があります。あなたはこのようにすることができます:

$(rubyscript <<< "selection") 

$() の構造はバッククォートと同じです。 <<< は、rubyscript の stdin への入力として文字列 "selection" を提供します。

または、bash スクリプトが「ハング」したときに、自分で答えを入力することもできます。

于 2013-01-30T10:36:26.597 に答える