bash при создании html email показывает неверное значение массива

0

У меня есть сценарий bash, который захватывает некоторые значения, их в массиве и затем вызывает эти значения массива в html-части сообщения (html-таблица)

Я проверяю наличие XML файла на сегодняшний день:

if [ -f /home/scrptadmin/health/${node}/$(date +%F)*.xml ]; then
            #add parsing of files here later, for now simple file check
            #declare "bk_${node}="SUCCESS"
            bk[$i]='SUCCESS'
            echo ${bk[$i]}
    else
            bk[$i]='FAIL'
            echo ${bk[$i]}
    fi

Я знаю, что $ bk [5] заполняется "FAIL" - xml файл с 2013 года и не соответствует сегодняшней дате, поэтому $ bk [5] заполняется "FAIL" (как и ожидалось):

     i=5
    + for node in '"${bkdir[@]}"'
    ++ ssh 178.215.139.120 ls -1td '/DRSSYSTEM/HORTA/PRESC2/*'
    ++ head -1
    + scp 178.215.139.120:/DRSSYSTEM/HORTA/PRESC2/2013-04-11-07-55-06_drfComponent.xml   /home/scrptadmin/health/PRESC2
    2013-04-11-07-55-06_drfComponent.xml                                       100%   49KB  48.5KB/s   00:00    
    ++ date +%F
    + '[' -f '/home/scrptadmin/health/PRESC2/2014-04-09*.xml' ']'
    + bk[$i]=FAIL
    + echo FAIL
    FAIL

Однако, когда я использую $ bk [5] в таблице:

<th scope=\"row\" style=\"background-color: rgb\(223, 223, 223\);\">Backup</th>
                                                                    <td>${bk[4]}</td>
                                                                    <td>${bk[5]}</td>
                                                                    <td>${bk[6]}</td>   
                                                    </tr>

   <th scope=\"row\" style=\"background-color: rgb\(223, 223, 223\);\">Backup</th>
                                                                    <td>SUCCESS</td>
                                                                    <td>SUCCESS</td>
                                                                    <td>SUCCESS</td>
                                                    </tr>

И он появляется в html как "SUCCESS". Я в тупике, поскольку я использую другие элементы этого массива в этой таблице, и они правильно отражают значение массива.

Теги:

1 ответ

1

Обнаружено обходное решение по крайней мере - если я поместил значения массива в переменные без массива, он работает правильно:

BK_CUP1=${bk[4]}
BK_CUP2=${bk[5]}
BK_CUP3=${bk[6]}

   <th scope=\"row\" style=\"background-color: rgb\(223, 223, 223\);\">Backup</th>
                                                                    <td>${BKCUC1A}</td>
                                                                    <td>${BKCUC2A}</td>
                                                                    <td>${BKCUC3A}</td>
                                                            </tr>
                                                    <tr>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню