Программа зависает после ее выполнения - не завершается - PullRequest
0 голосов
/ 25 февраля 2020

В настоящее время имеется программа-оболочка, которая должна собирать некоторую общую системную информацию для целей администратора.

ВЫПУСК: после выполнения программы она зависает и никогда не завершается. После некоторой обработки я заметил, что после вызова метода "DumpInfo" он кажется зависшим

# 
# Description: 
# Gather general system info then place info in dumpfile
# 
# Usage: 
# bash getlocal.sh < cmds.txt, cmds.txt is a file with a list of commands to run
#
#

function SepCmds() 
{ 
        LCMD=${ALINE%%|*} 
        REST=${ALINE#*|} 
        WCMD=${REST%%|*} 
        REST=${REST#*|}  
        TAG=${REST%%|*} 

        if [[ $OSTYPE == "MSWin" ]] 
        then 
                CMD="$WCMD" 
        else 
                CMD="$LCMD"
        fi
}

function DumpInfo ()
{ 
        printf '<systeminfo host="%s" type="%s"' "$HOSTNAME" "$OSTYPE"
        printf ' date="%s" time="%s">\n' "$(date '+%F')" "$(date '+%T')"
        readarray CMDS
        for ALINE in "${CMDS[@]}" 
        do 
                #ignore comments 
                if [[ ${ALINE:0:1} == '#' ]] ; then continue ; fi 

                SepCmds

                if [[ ${CMD:0:3} == N/A ]] 
                then 
                        continue
                else 
                        printf "<%s>\n" $TAG
                        $CMD
                        printf "</%s>\n" $TAG
                fi
        done 
        printf "</systeminfo>\n"
}

OSTYPE=$(./osdetect.sh) 
HOSTNM=$(hostname) 
TMPFILE="${HOSTNM}.info"

# gather the info into the tmp file; errors as well 
DumpInfo > $TMPFILE 2>&1
...