Проверка Cryptsetup Benchmark --проверка списка всех шифров

Пример с grep:

function extract_key_value() {
    egrep -o "$1[:=]['\"[:alnum:]]+" | egrep -o "['\"[:alnum:]]+$" | egrep -o "[[:alnum:]]+"
}
echo -e "on line 1\ntest:123 asasas\non line 3\ntest='abc'\non line 5" | extract_key_value test
0
27.01.2021, 09:42
1 ответ

Ваша проблема не имеет ничего общего с dm _crypt. Это простой вопрос программирования оболочки.

Во-первых, вы совершаетежестокое обращение с кошками . Вместо cat /proc/crypto | grep "name"просто напишитеgrep name /proc/crypto(без кавычек ).

Вы также можете объединить grep и cut в одну sedкоманду. Не обязательно легче читать :sed -n '/^name/s/.*: //p' /proc/crypto, но для этого требуется одна команда вместо двух. -nпо умолчанию запрещает sedпечатать строки. Программа находит строки, начинающиеся с «имя», и удаляет первую часть строки до пробела после двоеточия. pгарантирует, что это будет напечатано.

Давайте теперь ответим на ваш вопрос . Я понимаю, что опция --cipherиспользует один шифр. Это означает, что вы должны запускать cryptsetup benchmarkнесколько раз, по одному разу для каждого шифра. Для этого требуется цикл, например:

for cipher in $(<cipher.txt)
do cryptsetup benchmark --cipher "$cipher"
done

Кавычки необходимы, так как некоторые имена шифров содержат специальные символы, такие как круглые скобки.

Если вам не нужен файл cipher.txt, вы можете сделать все это за один раз:

for cipher in $(grep name /proc/crypto | cut -c 16-)
do cryptsetup benchmark --cipher "$cipher"
done
2
18.03.2021, 22:34

Теги

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