Parte 1
Digamos que eu tenha um comando my_command
que produz várias linhas.
Gostaria de capturar a primeira linha da saída de my_command
assim que ela estiver pronta em um script, mantendo my_command
em execução.
Eu pensei que algo assim funcionaria:
# Get a code that 'my_command' prints in its first line
parsed_first_line='my_command | grep -oEe '[0-9]+''
echo 'Here is the first line ' $parsed_first_line
mas isso não acontece. A declaração echo só é atingida apenas uma vez my_command
foi totalmente concluída, o que não é o que eu quero.
Parte 2
Entrando em mais detalhes: Imagine my_command
é na verdade um comando que conecta meu shell a um shell remoto. Isso mudaria de alguma forma nossa solução para a Parte 1 ?
Caso os detalhes sejam importantes, my_command
é, na verdade, um comando de uma linha:
bsub /bin/zsh
.
Este é um comando Platform LSF
que submete um trabalho a partir de uma máquina de login (um shell zsh interativo no nosso caso ) para uma rede remota. Depois que o trabalho enviado recebe um espaço aberto na grade, o LSF o despacha, fornecendo um shell interativo na máquina remota.
A primeira coisa que o bsub
faz é produzir o job ID
do meu trabalho na fila remota (isso é o que espero analisar no meu script) e, depois que um slot é aberto, ele despacha o meu trabalho. / p>
Gostaria de saber se uma solução trivial para a Parte 1 funcionaria para Parte 2