Saya berasumsi bahwa apa yang Anda lakukan di allcommands.sh Anda adalah:
command1.sh
command2.sh
Hubungkan saja dengan
command1.sh | sed "s/^/[command1] /"
command2.sh | sed "s/^/[command2] /"
Contoh minimal allcommands.sh
:
#!/bin/bash
for i in command{1,2}.sh; do
./"$i" | sed 's/^/['"${i%.sh}"'] /'
done
Dengan command1.sh
dan command2.sh
dapat dieksekusi dan di direktori yang sama hanya echo
ing string yang diinginkan, ini memberikan keluaran 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
Cepat sed
kerusakan
sed 's/^/['"${i%.sh}"'] /'
s/
memasuki mode "pencocokan pola regexp dan ganti"^/
berarti "cocokkan dengan awal setiap baris"${i%.sh}
terjadi dalam konteks shell dan berarti "$i
, tetapi hapus akhiran.sh
"['"${i%.sh}"'] /
pada awalnya mencetak[
, lalu keluar dari konteks yang dikutip untuk mengambil$i
variabel dari shell, lalu masuk kembali untuk menyelesaikan dengan]
dan spasi.