Как кодируются символы в выводе stty?

cd  /path/to/backup/
lsblk --fs --output FSTYPE,UUID | grep crypto_LUKS | tr -s ' ' | cut -d ' ' -f2 | \
while read uuid; do 
    mntpoint=$(lsblk /dev/disk/by-uuid/$uuid --output MOUNTPOINT | sed 1,1d | head -n 1)
    name="${mntpoint}_luksHeader_$uuid.img"
    if [[ ! -e "$name" ]]; then     
        cryptsetup luksHeaderBackup /dev/disk/by-uuid/$uuid --header-backup-file $name
    fi
done

Измените путь/к/резервной копии, и все будет готово. Просто знайте, что если точка монтирования для устройства изменится, оно создаст несколько резервных копий заголовков. В противном случае он будет игнорировать уже зарезервированные устройства.

2
04.04.2021, 02:59
1 ответ

M-означает, что установлен старший бит, поэтому добавьте «0x80» к кодировке символов.

^?означает символ «DEL», то есть 0x7F.

Сложите два вместе, и мы получим 0xFF.

Мы можем это проверить:

$ stty -a | grep -w eol | sed 's/.*; //'
eol = <undef>;

$ stty eol 0xff 

$ stty -a | grep -w eol | sed 's/.*; //'
eol = M-^?;

Полный список управляющих символов и их обозначения доступны в разделе Таблица управляющих кодов статьи Википедии об ASCII .

2
28.04.2021, 22:54

Теги

Похожие вопросы