/ / Баш-обгортковий скрипт для підказки користувача - bash

Баш-скриптовий скрипт для користувача введення - 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 для відповіді № 1

Рубінський скрипт читається з stdin, тому вам потрібно надати щось на stdin, навіть якщо він викликається з bash. ти можеш це зробити так:

$(rubyscript <<< "selection")

Конструкція $ () така ж, як і заставки <<< дає рядок «вибір» як вхідний файл для stdin для rubyscript.

Або ви можете просто набрати відповідь самостійно, коли сценарій bash "зависає"