В строке 7 вместо [[... ]]
вы хотите [... ]
или test...
(, убедившись, что всегда, всегда, всегда заключаете в кавычки каждую переменную --, которую вы уже сделали, но с [
это не необязательный, и его стоит повторить для всех, кто читает ).
if [ -x "$p" ]
В строке 14 вы можете использовать здесь -документ в сочетании с подстановкой команды для замены подстановки процесса:
done <<EOF
$(crontab -l | awk 'NR > 2 { print $6 }')
EOF
Таким образом, вы избежите запуска цикла while read p
в подоболочке из-за передачи в нее конвейера, поэтому ваши переменные выживут.
Это должно сделать его совместимым с POSIX.
Смени шрифт! Это (для меня )абсурдно использовать курсив, рукописный шрифт в качестве терминального шрифта. Найдите какой-нибудь моноширинный шрифт без засечек и используйте его.
А причиной такого поведения является плохой дизайн пар кернинга . Можно исправить, отредактировав сам шрифт