GNU/Linux >> Linux Esercitazione >  >> Linux

Prefisso a ogni output di un comando in fase di esecuzione

Presumo che ciò che stai facendo in allcommands.sh sia:

command1.sh
command2.sh

Basta collegarlo con

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

Un esempio minimo di allcommands.sh :

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

Con command1.sh e command2.sh eseguibile e nella stessa directory solo echo ing le stringhe desiderate, questo fornisce l'output della 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

Veloce sed ripartizione

sed 's/^/['"${i%.sh}"'] /'
  • s/ entra in modalità "corrispondenza modello regexp e sostituzione"
  • ^/ significa "corrisponde all'inizio di ogni riga"
  • ${i%.sh} avviene nel contesto della shell e significa "$i , ma rimuovi il suffisso .sh "
  • ['"${i%.sh}"'] / all'inizio stampa un [ , quindi esce dal contesto citato per prendere il $i variabile dalla shell, quindi rientra per terminare con ] e uno spazio.

Linux
  1. Come salvare l'output dei comandi in un file in Linux

  2. Aggiungi una stringa di prefisso all'inizio di ogni riga

  3. Come aggiungere l'output a un file?

  4. L'output del comando reindirizza al file e al terminale

  5. Come stampare l'output del comando Linux su un file?

Comando file Linux

Meno comandi in Linux

Comando sorgente Bash

Come salvare l'output dei comandi di Linux in un'immagine o in un file di testo

Come reindirizzare l'output del comando della shell

Salva l'output di un comando dal terminale Debian in un file