ожидать
, для другой цели. Это выполняет команды на присоединенной программе. Вы, в отличие от этого, просите способ отправить команды в процесс, уже работающий в фоновом режиме.
Как скелеты минимальный пример того, что вы хотите, давайте создадим FIFO:
$ mkfifo in
FIFO А является специальным файлом, который один процесс может записать в то, в то время как другой процесс читает из него. Позволить создать процесс для чтения из нашего файла FIFO в
:
$ python <in &
[1] 3264
Теперь, давайте отправим python
команда для выполнения от текущей оболочки:
$ echo "print 1+2" >in
$ 3
вывод от python
3
и появляется здесь на stdout. Если мы перенаправили stdout Python, он мог бы быть отправлен в другое место.
ожидают
, делает , ожидают
, позволяет вам автоматизировать взаимодействие с присоединенной командой. Как пример того, что ожидают
, может сделать, создать файл:
#!/usr/bin/expect --
spawn python
expect ">>>"
send "print 1+2\r"
expect ">>>"
Затем петляйте с , ожидают
:
$ expect myfile
spawn python
Python 2.7.3 (default, Mar 13 2014, 11:03:55)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print 1+2
3
>>>
С awk
:
awk '
/ODB_ACTIAVTION SUCCESSFUL/{printf "%s\nChanges has been updated to all servers\n", $0}
/ODB_ACTIAVTION UNSUCCESSFUL/{printf "%s\nNo change\n", $0}
' <in >out
С sed
:
sed -e '
/ODB_ACTIAVTION SUCCESSFUL/a\
Changes has been updated to all servers
/ODB_ACTIAVTION UNSUCCESSFUL/a\
No change
' <in >out
awk '/ODB_ACTIAVTION SUCCESSFUL/ {printf "%s\nChanges has been updated to all servers\n", $0}
/ODB_ACTIAVTION UNSUCCESSFUL/ {printf "%s\nNo change\n", $0}' file1 > file2