I am running a bash script :

touch archlinux_log.txt
touch packages_not_in_archlinux.txt

while read line; do    
  if pacman -Q --info $line ; then
      pacman -Q --info $line >> archlinux_log.txt
      echo "No Package info for $line"
      $line >> packages_not_in_archlinux.txt

However, a very peculiar problem that I am facing here is that the script always stops at a particular package name called dirmngr and displays the following message :

dirmngr[10701.0]: permanently loaded certificates: 141
dirmngr[10701.0]:     runtime cached certificates: 0
dirmngr[10701.0]:            trusted certificates: 141 (141,0,0,0)

I have ran the same script in Debian and Fedora and encountered no problems as such. All packages were scanned through. Any hints why this is happening with archlinux? Help will be deeply appreciated. Thanks!

1 Answer 1


The following line in your script will execute whatever is in $line and append the output to packages_not_in_archlinux.txt:

$line >> packages_not_in_archlinux.txt

If $line expands to dirmngr, then that is the command that would be run at that point in the script.

You might have wanted to store the string $line in the output file instead:

printf '%s\n' "$line" >>packages_not_in_archlinux.txt

The whole script, with proper quoting of variables and avoiding to run pacman twice:



while IFS= read -r package; do    
    if pacman -Q --info "$package" >"$tmpfile"
        cat "$tmpfile" >>archlinux_log.txt
        printf 'No package info for %s\n' "$package"
        printf '%s\n' "$package" >>packages_not_in_archlinux.txt
done <"$1"

rm -f "$tmpfile"


  • Thank you very much!
    – MathMan
    Aug 6, 2022 at 15:17

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .