While Erro de sintaxe de loop

1

Estou tentando uma modificação do apt-fast para suportar o download e a instalação paralelos.

Estou tendo alguns problemas com esse loop:

get_install(){
while ((!${pkg}-finished))
do
  if [ "$CURNUM" -lt "$_MAXNUM" ]; then
    let CURNUM=$CURNUM+1
    eval "aria2c -c -j ${_MAXNUM} -x ${_MAXNUM} -s ${_MAXNUM} \
           -i /tmp/${pkg}-dl --min-split-size=1M --connect-timeout=600 \
           --timeout=600 -m0 && find -type f -name "$(cat /tmp/${pkg}-name)" \
           -execdir mv -ft "$APTCACHE" {} \+ && \
           ${_APTMGR} -y install $(cat /tmp/${pkg}-name) \
           "${APTCACHE}/$(cat /tmp/${pkg}-name)" && let CURNUM=$CURNUM-1 && \
           ${pkg}-finished=1 &"
  else
    eval "sleep 1 &"
done
}

(Código ligeiramente editado por legibilidade, versus fonte.)

Está me dando:

/usr/sbin/apt-fast: line 297: syntax error near unexpected token 'done'
/usr/sbin/apt-fast: line 297: 'done'

Tenho certeza de que é algo menor que estou negligenciando. Se alguém precisar de uma cópia de todo o roteiro, ele estará aqui: link Vou fazer outras críticas também! Para tentar executá-lo, você pode precisar instalar o apt-fast do ppa primeiro, instruções aqui: link Após a instalação, apenas sobrescreva / usr / sbin / apt-fast com o link acima.

    
por Forrest Carroll 18.01.2015 / 12:26

1 resposta

3

Como g_p disse nos comentários, seu if [ "$CURNUM" -lt "$_MAXNUM" ] não está terminado. O Bash está esperando um fi antes do while ' done .

    
por Oli 18.01.2015 / 13:29