Сценарии оболочки могут устанавливать свои собственные обработчики сигналов с помощью ключевого слова trap
. В вашем сценарии вы хотите игнорировать SIGHUP, поэтому вы должны позвонить куда-нибудь перед завершением сеанса ldm
trap '' SIGHUP
, где ''
(пустая строка) указывает, что вы хотите игнорировать SIGHUP (в противном случае вы бы указали сигнал код обработки здесь).
В * BSD rs (1)
, при условии, что входной файл правильно сформирован:
rs -C -t $( awk '/^$/ { print NR-1; exit }' file ) <file
Чистый awk-подход
awk '{a[NR%5]=a[NR%5] $0 " "}END{printf "%s\n%s\n%s\n%s\n",a[1],a[2],a[3],a[4]}' file