Bash,而while循环不适用于每一行

时间:2019-06-11 19:24:26

标签: arrays bash while-loop ifs

我有一些带有while循环的代码,但是它不适用于插入文件中的所有行,仅适用于第一行,然后不执行任何操作。

这是完整的代码。

#!/bin/bash

> $folder_html/$argument-article.html

while read -r line; do
    IFS=$divider read -ra var <<< $line
    #echo ${var[1]}
    #done <<< $(cat $folder_cfg/$argument.cfg | grep -v "#")
    #exit 1
    echo ${var[1]}

    if [ ! -d $folder_main/${var[0]} ]; then
        mkdir -p $folder_main/${var[0]}
    fi

    folder_nice=$(echo ${var[1]} | tr / -)

    export_start=$date-$time

    command="
    sudo tar -zcvf - ${var[1]}
    "

    if
        (ssh $username@${var[0]} "$command" > $folder_main/${var[0]}/$date-$time$folder_nice.tar.gz) 1> error
        export_end=$date-$time

    then
        export=true
    else
        export=false
    fi

    echo $style_header[$export]

    echo '
    <tr style="'$style_header_{$export}'">
    <td style="padding: 10px; text-align: center;">'$export_start'<br/>'$export_end'</td>
    <td style="padding: 10px; text-align: center;"><strong>'${var[0]}'</strong><br/>'${var[1]}'</td>
    <td style="padding: 10px; text-align: center;">filesystem export '$export'</td>
    </tr>
    ' >> $folder_html/$argument-article.html

done <<< $(cat $folder_cfg/$argument.cfg | grep -v "#")

# send email
cat $folder_html/$argument-header-$export.html $folder_html/$argument-article.html $folder_html/$argument-footer.html | mail -a "From: sofimon <$email_sender>" -a 'Content-type: text/html' -s 'sofimon, filesystem export' $email_recipients

但是当我取消评论

while read -r line; do
    IFS=$divider read -ra var <<< $line
    echo ${var[1]}
done <<< $(cat $folder_cfg/$argument.cfg | grep -v "#")
exit 1

它按我的预期工作。

插入文件在这里。

usl-coop,/root
usl-coop,/var
usl-coop,/bin

可能出什么问题了?

谢谢。

0 个答案:

没有答案