2013-10-13 6 views
0

У меня есть Баш скрипт, A.Shвызова Баш скрипт и заполнить входные данные из другого Баш скрипт

И когда я бегу A.Sh, мне нужно заполнить несколько чтения. Скажем так:

./a.sh 
Please input a comment for script usage 
test (I need to type this line mannually when running the script a.sh, and type "enter" to continue) 

Теперь я вызываю a.sh в своем новом скрипте b.sh. Могу ли я позволить b.sh заполнить строку «test» automaticlly?

И еще один вопрос: a.sh владеет множеством отпечатков на консоли, могу ли я отключить отпечатки от a.sh, выполнив что-то в моем b.sh, не меняя a.sh?

Спасибо.

ответ

1

В широких пределах вы можете использовать один скрипт для стандартного ввода для другого сценария.

Однако вы, вероятно, все равно увидите подсказки, хотя вы не увидите ничего, что удовлетворяет этим запросам. Это выглядело бы плохо. Кроме того, в зависимости от того, что делает a.sh, вам может понадобиться прочитать дополнительную информацию со стандартного ввода - но вы должны убедиться, что скрипт, вызывающий его, предоставляет правильную информацию.

Как правило, вы пытаетесь избежать этого. Сценарии, запрашивающие ввод, плохо для автоматизации. Лучше поставлять входы через аргументы командной строки. Это облегчает ваш второй скрипт, b.sh, для управления a.sh.

0

a.sh

#!/bin/bash 
read myvar 
echo "you typed ${myvar}" 

b.sh

#!/bin/bash 
echo "hello world" 

Вы можете сделать это в 2-х методов:

$ ./b.sh | ./a.sh 
you typed hello world 
$ ./a.sh <<< `./b.sh` 
you typed hello world 
Смежные вопросы