Bug 10170

Summary: /usr/bin/[ works like 'test', not like '['
Product: Sisyphus Reporter: Sergey Vlasov <vsu>
Component: coreutilsAssignee: placeholder <placeholder>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P2 CC: glebfm, ldv, mike, placeholder
Version: unstable   
Hardware: all   
OS: Linux   

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