Подоболочки. $$
указан POSIX и всегда остается значением исходного процесса оболочки. $BASHPID
определенная для Bash переменная и всегда значение процесса, от которого переменная разыменовывается, считая подоболочки.
$ f() { printf '%s: %d, %d\n' "$1" $$ $BASHPID; };
$ ${BASH_VERSION+shopt -s lastpipe}; set +m;
$ f 1 >&2 | f 2
2: 31490, 31490
1: 31490, 32545
Мне действительно удавалось убедить mksh специалиста по обслуживанию добавлять BASHPID
к новой версии, таким образом, это несколько портативно. Также возможно реализовать BASHPID
в ksh93 самостоятельно на многих платформах.
Никогда не синхронизируйте базу данных, не обновляя Ваши пакеты. Всегда используйте pacman -Syu
, иначе можно испытать вид поломки, которую Вы видите.
По существу Вы сказали pacman обновляться, это - список локальных баз данных для определенного пакета и не обновило любой из других пакетов (который может совместно использовать библиотеки), одновременно. Поэтому частичные обновления не поддерживаются.
Можно считать притчу грустного пользователя, который попал в это прерывание для более конкретного примера.