Сравнение идентификатора ключа пакета RPM с отпечатком ключа RPM-GPG-KEY

Синтаксис циклов whileв cshотличается от синтаксиса Bourne -, подобного оболочкам. Это:

while (arithmetic-expression)
  body
end

Когда cshявляется интерактивным, по какой-то причине endдолжен появиться сам по себе в строке.

Для арифметического -выражения для проверки успешности выполнения команды необходимо{ cmd }(пробелов ). { cmd }в арифметических выражениях разрешается в 1, если команда выполнена успешно (завершилась с нулевым статусом выхода )или 0 в противном случае (, если команда завершилась с не -нулевым статусом выхода ).

Так:

while ({ true })
  body
end

Но это было бы немного глупо, особенно если учесть, что trueне является встроенной -командой в csh. Для бесконечного цикла лучше использовать:

while (1)
  body
end

Напротив, в оболочках POSIX используется следующий синтаксис:

while cmd; do
  body
done

И если вы хотите, чтобы условие оценивало арифметическое выражение, вам нужно запустить команду, которая вычисляет их, например expr, или ksh, let/ ((...))или test/ [в сочетании с арифметическими расширениями $((...)).

0
28.08.2019, 08:54
2 ответа

Во время исследования я обнаружил , что идентификатор ключа обычно представляет собой последние 8 или 16 байтов отпечатка ключа. Поэтому я хотел извлечь только их из вывода. Как этого добиться?

Я нашел следующий подход, который работает:

keyID.sh

#! /bin/bash

KEY_PATH=$1
KEY_FINGERPRINT=$(gpg --with-fingerprint ${KEY_PATH} | grep "Key fingerprint" | cut -d "=" -f 2 | tr -d ' ' | tr '[:upper:]' '[:lower:]')

echo ${KEY_FINGERPRINT} | grep -o '.\{8\}$'
echo ${KEY_FINGERPRINT} | grep -o '.\{16\}$'
0
28.01.2020, 02:39

Вы можете импортировать ключ GPG, используя rpm --import GPGFILE, а затем запуститьrpmkeys --checksig foo.rpm

1
28.01.2020, 02:39

Теги

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