Bug de script simples - adicionando PUBKEY para o apt-get

0

Quando executo apt-get update , obtenho alguns erros sobre a falta de chaves públicas e gostaria de corrigi-los com este script:

#!/bin/sh

cat /tmp/apt-get-update.txt | while read -r line;
do
  if [ "echo $line | grep -c NO_PUBKEY" == "1" ]
    then
      KEY='$line | grep -o NO_PUBKEY.* | cut -d" " -f2'
      sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $KEY
  fi
done

exit 0

O problema é que algo tem que estar errado com if line. Eu recebo esses erros:

~/script.sh: 5: [: echo Ign:36 http://ppa.launchpad.net/beineri/opt-qt57-trusty/ubuntu trusty/main i386 Packages | grep -c NO_PUBKEY: unexpected operator
    
por Sebastian 13.12.2017 / 13:29

1 resposta

2

Você pode extrair a chave e executar apt-key nela:

grep -o 'NO_PUBKEY.*' apt-get-update.txt | while read -r _ key; do 
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys "$key"
    break
done
    
por janos 13.12.2017 / 21:26