Подстановка процесса Bash "< (команда )" эквивалентна в оболочке рыбы

Предложенные ранее решения мне не подходили или не работали. По какой-то причине обновление пакета icuс 59.1 -2 до 60.1 -1 привело к разрыву связи, и многие программы (, включая pacman ), впоследствии перестали работать с этой ошибкой. На моей стороне нет прерванного пакмана.

Если у вас все еще есть предыдущий пакет в кеше, вы можете попробовать этот, который сработал в моем случае:

  1. Найдите кешированную версию пакета (, например, моя была/var/cache/pacman/pkg/icu-59.1-2-x86_64.pkg.tar.xz).
  2. Извлеките его:mkdir -p ~/pkg/tmp && tar xJvf /var/cache/pacman/pkg/icu-59.1-2-x86_64.pkg.tar.xz -C ~/pkg/tmp
  3. Скопируйте библиотеки в папку с библиотекой:sudo cp ~/pkg/tmp/usr/lib/libicu*.59 /usr/lib/
  4. Продолжить обновление:sudo pacman -Syu
  5. Теперь вы можете удалить только что извлеченные файлы.
2
09.09.2020, 18:24
1 ответ

Конструкции <()и >()известны как «замена процесса ». Я не использую fish, но согласно его документации , он напрямую не поддерживает это:

Subshells, command substitution and process substitution are strongly related. fish only supports command substitution, the others can be achieved either using a block or the psub shellscript function.

Действительно,psubпохоже, это то, что вам нужно:

## bash
$ seq 10 | grep -f <(seq 4 5)
4
5

## fish
~> seq 10 | grep -f (seq 4 5 | psub)
4
5
5
18.03.2021, 23:05

Теги

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