LINUX.ORG.RU

Найден временный костыль: файлов много, но они нумерованные - т.е. можно проверить как 1\ *file*reg*exp.

NekoExMachina
() автор топика
if [ "x$( echo *file*reg*exp )" != "x*file*reg*exp" ]; then
...

Правда это не сработает, если существует файл с именем «*file*reg*exp». Если существование такого фала возможно, то можно попробовать так:

if ls *file*reg*exp >/dev/null 2>&1; then
...
Но это более костыльно, т.к. использует внешнюю утилиту и передаёт ей кучу параметров, если подходящих файлов много.

Deleted
()
Ответ на: комментарий от NekoExMachina

ugly hack

exist=0; for i in <mask>; do exist=1; break; done; echo $exist

anonymous
()
$ a=(*.txt)
$ [ -n "${a[1]}" ] && echo "Found at least one" || echo "Nothing here"
Found at least one

a=(*.bebe)
[ -n "${a[1]}" ] && echo "Found at least one" || echo "Nothing here"
Nothing here
sdio ★★★★★
()

Что-то никто не вспомнил find:

21:43 /Data/Cinema/NEW
A=$(find . -name "*Я*" -exec echo -n "1" \; ); [ "$A" = "" ] && echo "No files" || echo "File(s) present"
No files
21:43 /Data/Cinema/NEW
A=$(find . -name "*d*" -exec echo -n "1" \; ); [ "$A" = "" ] && echo "No files" || echo "File(s) present"
File(s) present

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

а ещё есть -quit - чтобы find останавливался после первого найденного:

me@utnubu:~/.downloads$ PATTERN='*ice*'
me@utnubu:~/.downloads$ FOUND=$(find ./ -name "$PATTERN" -print -quit)
me@utnubu:~/.downloads$ if [ "X$FOUND" = "X" ]; then echo No files matching "$PATTERN"; else echo Found file $FOUND; fi
Found file ./practice-fp-2-print.pdf
me@utnubu:~/.downloads$ ls $PATTERN
practice-fp-1-print.pdf  practice-fp-2-print.pdf  practice-fp-3-print.pdf
gorilych ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.