$ cat test.sh #!/bin/bash while read NAME DISP REST; do test "pts/1" = "$DISP" && break done < <(who) echo "${NAME:--}" $ /bin/sh --rpm-requires test.sh test.sh: line 4: syntax error near unexpected token `<' test.sh: line 4: ` done < <(who)' $ /bin/bash --rpm-requires test.sh executable(/etc/bashrc)
соответственно в /usr/lib/rpm/shell.req используется sh. Может быть стоит использовать то, что написано в самом скрипте ?
У нас /bin/sh не понимает process substitution -- конструкцию <(...), при том, что явно это нигде не отключается. Я об этом рассказывал ещё в прошлом году (в кулуарах, да!), но причину мы выяснить не смогли.
В итоге все это выливается в невозможность собрать программы с таким кодом. Т.е. - единственный способ сейчас - это отключить поиск зависимостей, а этого делать не хочется, т.к. скрипты писал не я, они большие и вычитывать все просто долго.
* Wed Jun 29 2005 Dmitry V. Levin <ldv@altlinux.org> 4.0.4-alt46 - shell.req: use "bash" for Bourne-Again shell scripts, and "sh" for others (closes #7242).