Вы можете поместить пароль в файл и повторно использовать его с параметром - файл ключа
. Использование случайного ключевого файла вместо ключевой фразы в виде открытого текста в такой настройке может быть предпочтительнее.
echo -n password > pwfile
for luks in md1 md2 md3
do
cryptsetup luksOpen --key-file=pwfile /dev/"$luks" luks"$luks"
done
Лично я использовал несколько иной подход с зашифрованными ключевыми файлами LUKS:
В этой настройке одиночная фраза-пароль разблокирует хранилище ключевых файлов, которое содержит случайные ключи для различных других контейнеров LUKS. Это особенно полезно для / boot
в настройках USB, поэтому / boot
нельзя подделать, и одного аппаратного кейлоггера недостаточно для получения ключей для внутренних дисков.
sort
зависит от локали, поэтому в зависимости от настройки COLLATE (LC _, которая унаследована от LANG ), вы можете получить разные результаты:
$ LANG=C sort sort_fail.csv
241|212|20810378
241|213|20810376
24|121|2810172
column_a|column_b|column_c
$ LANG=en_US sort sort_fail.csv
241|212|20810378
24|121|2810172
241|213|20810376
column_a|column_b|column_c
Это может привести к проблемам в скриптах, поскольку вы можете не знать, какая локаль вызова установлена, и поэтому можете получить разные результаты.
Сценарии нередко принудительно устанавливают необходимые настройки
напр.
$ grep 'LC.*sort' /bin/precat
LC_COLLATE=C sort -u | prezip-bin -z "$cmd: $2"
Теперь интересно то, что символ |
выглядит странно.
Но это потому, что правило по умолчанию для en _US, которое происходит от ISO, говорит
$ grep 007C /usr/share/i18n/locales/iso14651_t1_common
<U007C> IGNORE;IGNORE;IGNORE;<j> # 142 |
Это означает, что символ |
игнорируется и порядок сортировки будет таким, как если бы этот символ не существовал.
$ tr -d '|' < sort_fail.csv | LANG=C sort
24121220810378
241212810172
24121320810376
column_acolumn_bcolumn_c
И это соответствует "неожиданной" сортировке, которую вы видите.
Обходной путь: использовать-n
(для принудительной числовой сортировки ), или использовать разделитель полей (, как вы делали ), или использовать локаль C
.
Что меня раздражает, так это то, что 24
не смещается со своего места между двумя 241
. Второе поле начинается с 1
. При попытке сортировки с ведущим 4
во втором поле 24
перемещается вниз, поэтому я подозреваю, что sort
просто игнорирует |
, если не указано иное. Попробуйте sort -n
...
- n, --числовая -сортировка сравнивать по числовому значению строки
210
23
Без -n, 210 по тексту опережает 23, как идет символ моего персонажа.