Bug 7242 - использование башизма в скриптах не проходит через find-requires
: использование башизма в скриптах не проходит через find-requires
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/rpm-build)
: unstable
: all Linux
: P2 critical
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2005-06-29 15:45 by
Modified: 2007-04-06 16:01 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2005-06-29 15:45:46
$ 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)
------- Comment #1 From 2005-06-29 15:47:35 -------
соответственно в /usr/lib/rpm/shell.req используется sh.

Может быть стоит использовать то, что написано в самом скрипте ?
------- Comment #2 From 2005-06-29 16:44:10 -------
У нас /bin/sh не понимает process substitution -- конструкцию <(...), при том,
что явно это нигде не отключается.  Я об этом рассказывал ещё в прошлом году (в
кулуарах, да!), но причину мы выяснить не смогли.
------- Comment #3 From 2005-06-29 17:41:05 -------
В итоге все это выливается в невозможность собрать программы с таким кодом.
Т.е. - единственный способ сейчас - это отключить поиск зависимостей, а этого
делать не хочется, т.к. скрипты писал не я, они большие и вычитывать все просто
долго.
------- Comment #4 From 2005-06-29 22:29:43 -------
* 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).