#!/bin/bash PROGRAM_PATH="/home/user/sertst" export PATH="${PATH}:${PROGRAM_PATH}" function loop(){ declare -i port=0 declare -r log_prefix="${PROGRAM_PATH}/log/com" declare -r postfix=$$ declare -a logs for index in ${window[@]};do command="serialtest_5Loopback -t 5 -c /dev/ttyS$port -s7 -ml -f $log_prefix$((port+1))test.$postfix.log -n COM$((port+1)) -i 512" logs+="$log_prefix$((port+1))test.$postfix.log " # Формируем списко лог файлов, в которые записывается данные тестов test $(exec $(which xterm) -T "SerialTest $index" -geometry $index -e $command) & if [ $port -eq 3 ];then pid=$! fi #echo $command let port++ done wait $pid echo ${logs[@]} } test_env(){ CDIR="${PROGRAM_PATH}/log" if [ ! -d $CDIR ];then mkdir log else echo "Log dir [OK] " fi } # Собираем все логи в один файл. function merge_logs(){ echo "Start merge logs" filename=($@) for index in ${filename[@]}; do cat $index >> $CDIR/com-$(date +'%F-%H-%M').log done } function master(){ declare -a window=("50x10+1080+0" "50x10+1080+175" "50x10+610+0" "50x10+610+175") test_env declare -a res=$(loop ${window[@]}) merge_logs $res } master