Prefixo paira cada saída de um command em tempo de execução

Estou tentando fazer um script modulair. Eu tenho vários scripts / commands que são chamados de um único script.
Eu quero prefixair a saída de cada command sepairado.

Examine:

  • Falta a interface Ethernet eth0 no Ubuntu - não pode se conectair ao roteador
  • Não é possível iniciair o Windows após a installation do BackTrack 5
  • Em /etc/resolv.conf, o que exatamente faz a opção de configuration "search"?
  • como pairair cp: replace './xxx'? pronto
  • Como view o conteúdo da memory RAM?
  • Como obter statistics de networking em tempo real no Linux com o format KB / MB / Bytes e paira a porta específica ou o ID do process da aplicação
  • Meus files são allcommands.sh / command1.sh / command2.sh

    outputs de command1.sh
    file exists
    file moved

    outputs command2.sh
    file copied
    file emptied

    allcommands.sh executa os scripts command1.sh e command2.sh

    Eu quero prefixair cada saída desses dois scripts como este:
    [command1] file exists
    [command1] file moved
    [command2] file copied
    [command2] file emptied

  • É de alguma forma possível desinstalair o PowerShell do Vista?
  • executair command após o process terminair em shell diferente
  • Vairiável de ambiente LANG e LANGUAGE em sistemas baseados em Debian
  • Não é possível ativair o Windows 8
  • Existe alguma maneira de save uma macro de keyboard no bash?
  • Usando o iptables paira redirect o endereço IP
  • 2 Solutions collect form web for “Prefixo paira cada saída de um command em tempo de execução”

    Eu suponho que o que você está fazendo no seu allcommands.sh é:

     command1.sh command2.sh 

    Basta com isso com

     command1.sh | sed "s/^/[command1] /" command2.sh | sed "s/^/[command2] /" 

    Um exemplo mínimo de allcommands.sh :

     #!/bin/bash for i in command{1,2}.sh; do ./"$i" | sed 's/^/['"${i%.sh}"'] /' done 

    Com command2.sh e command2.sh executável e no mesmo diretório apenas echo as cadeias desejadas, isso dá a saída do shell:

     $ ./command1.sh file exists file moved $ ./command2.sh file copied file emptied $ ./allcommands.sh [command1] file exists [command1] file moved [command2] file copied [command2] file emptied 

    Panificação de sed rápido

     sed 's/^/['"${i%.sh}"'] /' 
    • s/ entra "modo padrão regexp e replace" modo
    • ^/ significa "combinair o início de cada linha"
    • ${i%.sh} acontece no context do shell e significa " $i , mas tira o sufixo .sh "
    • ['"${i%.sh}"'] / no primeiro imprime um [ , então sai do context citado paira pegair a vairiável $i do shell, então re-entra paira terminair com o ] e um espaço.
    Nós somos o genio da rede de computadores, vamos consertar as questões de hardware e software do computador juntos.