The first 'ls' command was failing, so the second 'ls' command
would never run at all.
# without arch second.
arch=$(echo "@host_cpu@" | sed 's/^i.86$/i?86/')
-kernels=$(ls -1dvr /boot/vmlinuz-*.$arch* 2>/dev/null | grep -v xen; ls -1dvr /boot/vmlinuz-* 2>/dev/null | grep -v xen)
+kernels=$(
+ ls -1dvr /boot/vmlinuz-*.$arch* 2>/dev/null | grep -v xen ||: ;
+ ls -1dvr /boot/vmlinuz-* 2>/dev/null | grep -v xen
+)
if [ -z "$kernels" ]; then
echo "$0: failed to find a suitable kernel in /boot directory" >&2