Bug 10170 - /usr/bin/[ works like 'test', not like '['
: /usr/bin/[ works like 'test', not like '['
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/coreutils)
: unstable
: all Linux
: P2 normal
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2006-10-20 18:29 by
Modified: 2009-01-06 00:18 (History)


Attachments


Note

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


Description From 2006-10-20 18:29:39
В настоящий момент /usr/bin/[ - это симлинк на /usr/bin/test. Однако фактически
test из coreutils не меняет своё поведение в зависимости от argv[0], в
результате '[' не работает так, как нужно:

$ command [ -n xxx ]
[: xxx: ожидается бинарный оператор

$ command [ a = a ] 
[: излишний аргумент `]'%

(тут к тому же в конце сообщения отсутствует \n).

Проблема наблюдается как в свежем coreutils-5.97-alt1, так и в старых версиях
(в
частности, в coreutils-5.2.1-alt5 из M2.4). Правда, чаще всего она не
проявляется, поскольку большая часть версий shell используют встроенный '['.
------- Comment #1 From 2008-05-04 20:41:39 -------
$ bash
$ command [ -n xxx ]
$ command [ a = a ]
$ /usr/bin/[ a = a ] 
/usr/bin/[: extra argument `]'
$ rpm -q coreutils
coreutils-6.11-alt1
------- Comment #2 From 2009-01-06 00:18:15 -------
> bash
$ command [ a = a ]
$ command [ -n xxx ]
$ rpm -q coreutils
coreutils-6.12-alt2