FYI, > bash -x linux-purge --auto-only --keep=2 --yes + set -u -e + export LC_ALL=C + LC_ALL=C + export TMPDIR=/dev/shm + TMPDIR=/dev/shm + readonly program_name=linux-purge 'program_full_name=Linux Purge for Ubuntu' program_version=1.0.110-d5962da copyright_years=2017-2020 MB=1000000 width=72 + program_name=linux-purge + program_full_name='Linux Purge for Ubuntu' + program_version=1.0.110-d5962da + copyright_years=2017-2020 + MB=1000000 + width=72 ++ uname -r ++ stat --format=%m /boot + readonly 'w_error=Terminal screen not wide enough. Minimum is 72 columns.' 'h_error=Not enough lines in terminal screen.' lockfile=/var/lib/dpkg/lock current=4.15.0-115-generic boot=/boot + w_error='Terminal screen not wide enough. Minimum is 72 columns.' + h_error='Not enough lines in terminal screen.' + lockfile=/var/lib/dpkg/lock + current=4.15.0-115-generic + boot=/boot + readonly 'cs=;' + cs=';' ++ mktemp /dev/shm/linux-purge.error_XXX + readonly error_file=/dev/shm/linux-purge.error_ZxP + error_file=/dev/shm/linux-purge.error_ZxP + keep= + auto_only= + clear_boot= + choose= + debug= + debug_file= + show_debug_filename= + fix= + info= + simulate= + yes= + manual= + legend=1 + list= + optimize= + interface=d + operation=purge + update_grub_disabled= + update_grub= + unset -v LatestReleases ManualReleases HoldReleases + trap finish EXIT + trap 'finish INT; trap - INT; kill -s INT -- $$' INT + env -u GETOPT_COMPATIBLE getopt --test + [[ 4 -eq 4 ]] ++ env -u GETOPT_COMPATIBLE getopt -o abcd::fhi:k:lmnosrvy -l auto-only,clear-boot,choose,debug::,fix,help,info,interface:,keep:,list,manual,no-legend,optimize,remove,simulate,version,yes --name '[linux-purge] ERROR' -- --auto-only --keep=2 --yes + params=' --auto-only --keep '\''2'\'' --yes --' + eval set -- ' --auto-only --keep '\''2'\'' --yes --' ++ set -- --auto-only --keep 2 --yes -- + : + case ${1-} in + auto_only=1 + shift + : + case ${1-} in + keep=1 + n=2 + shift + shift + : + case ${1-} in + yes=-y + shift + : + case ${1-} in + shift + break + [[ 0 -eq 0 ]] + [[ -n '' ]] + [[ -n '' ]] + [[ -n 1 ]] + [[ 2 =~ ^[0-9]+$ ]] + [[ -n 1 ]] + [[ ! -n 1 ]] + [[ -n 1 ]] + [[ -n '' ]] + [[ -n '' ]] + [[ -n '' ]] + [[ -z '' ]] + [[ 0 -ne 0 ]] + [[ -n '' ]] ++ command -v update-grub + update_grub=/usr/sbin/update-grub + [[ -n /usr/sbin/update-grub ]] + chmod +x /usr/sbin/update-grub + [[ d = d ]] + hash dialog + [[ -n '' ]] + operate + [[ -n '' ]] + purge_normally ++ dpkg-query -W '-f=${Package} ${db:Status-Abbrev}\n' +++ literalize 4.15.0-115-generic +++ printf %s 4.15.0-115-generic +++ sed -e 's/[^^]/[&]/g' -e 's/\^/\\^/g' ++ grep -qE '^linux-image-(unsigned-)?[4][.][1][5][.][0][-][1][1][5][-][g][e][n][e][r][i][c] [ih]i $' dpkg-query: error: error writing to '': Broken pipe ++ dpkg-query -W '-f=${Package} ${Status}\n' 'linux-*' ++ awk '$3!="ok" || ($4!="installed" && $4!="not-installed" && $4!="config-files") ' + Pkgs= + [[ -n '' ]] ++ dpkg-query -W '-f=${db:Status-Abbrev} ${Package}\n' ++ sed -nr 's/^[ih]i linux-image-(unsigned-)?([0-9]+\..+)/\2/p' ++ linux-version sort + Releases='4.15.0-55-generic 4.15.0-106-generic 4.15.0-107-generic 4.15.0-112-generic 4.15.0-115-generic' + [[ -n '' ]] + [[ -z 1 ]] + ReleasesToKeep= ++ get_latest_releases +++ get_meta_kernels +++ dpkg-query -W -f '${db:Status-Abbrev} ${Package}\n' +++ awk '/^[ih].. linux-(.+-)?image-/{print $2}' +++ grep -Ev '[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+' ++ local meta_kernels= ++ [[ -z '' ]] + LatestReleases= + [[ -n '' ]] + error 'There are no meta-kernels so can not decide which kernels to keep.' + printf '[%s] ERROR: %s\n' linux-purge 'There are no meta-kernels so can not decide which kernels to keep.' + fold -s [linux-purge] ERROR: There are no meta-kernels so can not decide which kernels to keep. + [[ -n '' ]] + echo 1 + exit 1 + finish + err=1 + trap - EXIT + [[ -n 1 ]] + err=0 + rm -- /dev/shm/linux-purge.error_ZxP + restore_update_grub + [[ -n '' ]] + [[ -n '' ]] + [[ null == INT ]] + (( err != 0 && err != 141 )) + return 0