/ De script do wrapper Bash / Bash para entrada do usuário - bash

Bash wrapper script prompt para entrada do usuário - bash

Eu tenho um script bash que chama internamente um script Ruby, com base na situação às vezes o script Ruby solicitará uma seleção do usuário; como posso tornar isso possível?

Script principal do Bash:

#!/usr/bash
for host_name in `./myruby.rb -a xxx -b xxx`
do
echo -e "$host_name"
done

wrapper myruby.rb

#!/usr/bin/ruby
.....
......
puts "enter your selection ?"
user_selection = $stdin.gets

Se eu executo o Ruby diretamente, ele está funcionando bem, mas quando o executo do bash, não solicita a entrada do usuário; ao contrário, está pendurado.

Respostas:

1 para resposta № 1

O script ruby ​​lê do stdin, então você precisa fornecer algo sobre o stdin, mesmo quando chamado do bash. você poderia fazer assim:

$(rubyscript <<< "selection")

A construção $ () é a mesma que os backticks O <<< fornece a string "selection" como entrada no stdin para o rubyscript.

Ou você pode simplesmente digitar a resposta quando o script bash "travar"