multi_tail.sh
· 640 B · Bash
Raw
#!/bin/bash
trap fin 2 5 15
fin ()
{
echo "interruption utilisateur"
for i in $(seq 1 $nbp)
do
kill -9 %$i
done
}
lst=$*
nbp=0
cpt=0
bpt=0
color=30
background=40
bx=0
cx=1
for fic in $lst
do
if [[ $cpt -eq $bpt ]]
then
bpt=$(($bpt+1))
fi
tail -f -n 0 $fic | awk -v background=$(($background+$bpt)) -v fic=$fic -v color=$(($color+$cpt)) '{print "\033[31m[\033[0m"fic " " color " " background "\033[31m]\033[0m: \033[" color ";" background "m" $0"\033[0m" }' &
nbp=$(($nbp+1))
cpt=$(($cpt+1))
if [[ $cpt -gt 6 ]]
then
bpt=$(($bpt+1))
cpt=0
fi
if [[ $bpt -gt 6 ]]
then
bpt=0
fi
done
wait
| 1 | #!/bin/bash |
| 2 | |
| 3 | trap fin 2 5 15 |
| 4 | |
| 5 | fin () |
| 6 | { |
| 7 | echo "interruption utilisateur" |
| 8 | for i in $(seq 1 $nbp) |
| 9 | do |
| 10 | kill -9 %$i |
| 11 | done |
| 12 | } |
| 13 | |
| 14 | lst=$* |
| 15 | nbp=0 |
| 16 | cpt=0 |
| 17 | bpt=0 |
| 18 | color=30 |
| 19 | background=40 |
| 20 | bx=0 |
| 21 | cx=1 |
| 22 | for fic in $lst |
| 23 | do |
| 24 | if [[ $cpt -eq $bpt ]] |
| 25 | then |
| 26 | bpt=$(($bpt+1)) |
| 27 | fi |
| 28 | tail -f -n 0 $fic | awk -v background=$(($background+$bpt)) -v fic=$fic -v color=$(($color+$cpt)) '{print "\033[31m[\033[0m"fic " " color " " background "\033[31m]\033[0m: \033[" color ";" background "m" $0"\033[0m" }' & |
| 29 | nbp=$(($nbp+1)) |
| 30 | cpt=$(($cpt+1)) |
| 31 | if [[ $cpt -gt 6 ]] |
| 32 | then |
| 33 | bpt=$(($bpt+1)) |
| 34 | cpt=0 |
| 35 | fi |
| 36 | if [[ $bpt -gt 6 ]] |
| 37 | then |
| 38 | bpt=0 |
| 39 | fi |
| 40 | done |
| 41 | |
| 42 | wait |