printf -vl "%${COLUMNS:-`tput cols 2>&-||echo 80`}s\n" && echo ${l// /-};
Команда printf используется для форматированного вывода данных. В данном случае, она используется для создания строки символов заданной ширины, равной ширине терминала.
${COLUMNS:-tput cols 2>&-||echo 80} — это переменная, которая хранит ширину терминала. Если переменная ${COLUMNS} определена, то она используется в качестве значения ширины. Если она не определена, то команда tput cols получает ширину терминала, и если это не удается, то выводится значение 80.
-vl — флаги команды printf. -v используется для сохранения результата вывода в переменную l, а -l для добавления символа новой строки в конце строки вывода.
${l// /-} — это замена всех пробелов в значении переменной l на символы «-«. Таким образом, команда echo выводит строку символов «-» заданной ширины терминала.
Альтернативой может быть использование команды seq для генерации последовательности символов «-» заданной ширины терминала. Например, seq -s "-" $((${COLUMNS:-tput cols 2>&-||echo 80} - 1)) | tr -d '\n'
