Какая версия openSUSE наиболее близка к SLES 12.3?

Перенаправления на определенные файловые дескрипторы используют 3< file. Замена процесса использует <(... ). Чтобы объединить два, вам нужно использовать оба:

3< <(... )

Пробел важен — в противном случае он интерпретируется как попытка здесь документа , который заканчивается (, но это недопустимо, и вы получите ошибку синтаксического анализа.


Ваша gpgкомандная строка должна быть:

gpg --enable-special-filenames --verify --batch -- '-&3' '-&4' \
    3< <(curl -s https://www.gnupg.org/ftp/gcrypt/gnupg/gnupg-2.0.29.tar.bz2.sig) \
    4< <(curl https://www.gnupg.org/ftp/gcrypt/gnupg/gnupg-2.0.29.tar.bz2)

Это перенаправляет вывод первой команды curlв дескриптор 3, а второй — в дескриптор 4 точно так же, как если бы вы читали их из обычного файла.


Способ работы<(... )заключается в том, что он запускает команду с выходом, подключенным либо к FIFO, либо к записи в /dev/fd, а затем <(... )заменяется в командной строке на путь к этот файл как обычный аргумент, как если бы он был записан там с самого начала. Затем путь к файлу можно использовать с другими конструкциями, такими как перенаправление.

Ваша первоначальная команда завершается выполнением gpg... 3/dev/fd/63 4/dev/fd/64, а затем curlобнаруживает, что никого не интересует то, что она пишет, и сообщает об этой ошибке. Я также получил сообщение об ошибке от самого gpgо том, что эти файлы не существуют, хотя оно было скрыто в выводе curl.

0
06.07.2019, 10:16
1 ответ

Возможно вам поможет полная карта дистрибутива:

https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg

0
28.01.2020, 03:30

Теги

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