Там я запускаю сценарій, який встановлює службу. Він має пару read
команд.
Я хотів би запустити його як частину більшого сценарію установки (насправді capistrano, але це не має значення), і попередньо заповнити "прочитані" частини значеннями, а не блокувати весь процес.
Сценарій виконується за допомогою однієї команди, скажімо blah/bin/blah install
, Я хотів би поставити вхід на команду, як input first_input, second_input | blah/bin/blah install
Відповідні частини сценарію:
if [[ $NEO4J_USER == $wrapper_user ]]; then
default_user=$wrapper_user
else
default_user="neo4j"
fi
######### read:
read -p "Graph-like power should be handled carefully. What user should run Neo4j? [$default_user] " proposed_user
proposed_user=${proposed_user:-$default_user}
if ! `id $proposed_user &> /dev/null` ; then
######### read:
read -p "User \"$proposed_user\" does not yet exist. Shall I create the account for you? [Yn]" yn
case $yn in
[Nn]* ) echo "WARNING: Alright, but Neo4j will fail to launch until that user has been created."
set_user $proposed_user
;;
* ) create_user $proposed_user
;;
Весь сценарій знаходиться на http://pastebin.com/RpJZciXq
Я знаю, що можу змінити сценарій, але я просто хочу заповнити значення. Це можливо?
Добре, насправді, це мало значення я використовую capistrano тому, що він має здатність надсилати вхідні дані (подивитися &block
розділу).
Але цікаво знати, чи згадана функціональність існує і в bash.