Bug 10170 - /usr/bin/[ works like 'test', not like '['
Summary: /usr/bin/[ works like 'test', not like '['
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: coreutils (show other bugs)
Version: unstable
Hardware: all Linux
: P2 normal
Assignee: placeholder@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-10-20 18:29 MSD by Sergey Vlasov
Modified: 2009-01-06 00:18 MSK (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sergey Vlasov 2006-10-20 18:29:39 MSD
В настоящий момент /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 Michael Shigorin 2008-05-04 20:41:39 MSD
$ bash
$ command [ -n xxx ]
$ command [ a = a ]
$ /usr/bin/[ a = a ] 
/usr/bin/[: extra argument `]'
$ rpm -q coreutils
coreutils-6.11-alt1
Comment 2 Michael Shigorin 2009-01-06 00:18:15 MSK
> bash
$ command [ a = a ]
$ command [ -n xxx ]
$ rpm -q coreutils
coreutils-6.12-alt2