Bug 7709

Summary: при отсутствии файлов в дир. неверно распознается "*"
Product: Sisyphus Reporter: Vadim Gusev <kopilo4ka>
Component: bashAssignee: Alexey Gladkov <legion>
Status: CLOSED NOTABUG QA Contact: qa-sisyphus
Severity: normal    
Priority: P2 CC: abulava, glebfm, ldv, placeholder
Version: unstable   
Hardware: all   
OS: Linux   

Description Vadim Gusev 2005-08-18 14:15:00 MSD
mc-4.6.1r-alt2 
 
При отсутствии файлов в директории не верно распознается символ звездочка, что 
влечет за собой развал всех команд. 
 
# echo * 
* 
# echo .* 
. .. 
Steps to Reproduce:
1. mkdir s 
2. cd s 
3. echo *
Comment 1 Andrei Bulava 2005-08-21 16:05:18 MSD
А причем здесь, собственно, mc? Всё это воспроизводится в "голой" командной
строке bash(1).
Comment 2 Vadim Gusev 2005-08-23 14:26:18 MSD
упс, извиняюсь, перекиньте на bash 
Comment 3 Alexey Gladkov 2005-08-23 14:56:12 MSD
Это всязано с shell ... в вашем случае наверно с bash.
А что именно вам кажется ошибкой?
Comment 4 Vadim Gusev 2005-08-23 16:40:58 MSD
(In reply to comment #3) 
> Это всязано с shell ... в вашем случае наверно с bash. 
> А что именно вам кажется ошибкой? 
 
$ mkdir d 
$ cd d 
$ for i in *; do cmp $i ../$i; done 
cmp: недопустимое значение --ignore-initial `../2' 
cmp: Попробуйте `cmp --help' для получения более подробного описания. 
$ for i in *; do cmp "$i" "../$i"; done 
cmp: *: No such file or directory 
$ for i in ""; do cmp $i ../$i; done 
cmp: ../: Is a directory 
 
Третий вариант был бы предпочтительней я думаю. О, и кстати перевод от cmp :) 
Comment 5 Alexey Gladkov 2005-08-23 17:00:29 MSD
$ mkdir mytest 
$ cd mytest
$ ls -l
total 8
drwxr-xr-x  2 legion legion 4096 Aug 23 16:53 ./
drwxr-xr-x  3 legion legion 4096 Aug 23 16:53 ../
$ ls *
ls: *: No such file or directory
$ bash -O nullglob
$ ls *
$

Прочитайте man по bash. Можно искать по ключевому слову "nullglob".
Comment 6 Vadim Gusev 2005-08-23 17:26:39 MSD
Вылечилось добавлением в ~/.bashrc: 
shopt -s nullglob