Bug 7709 - при отсутствии файлов в дир. неверно распознается "*"
Summary: при отсутствии файлов в дир. неверно распознается "*"
Status: CLOSED NOTABUG
Alias: None
Product: Sisyphus
Classification: Development
Component: bash (show other bugs)
Version: unstable
Hardware: all Linux
: P2 normal
Assignee: Alexey Gladkov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-08-18 14:15 MSD by Vadim Gusev
Modified: 2005-08-23 17:28 MSD (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 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