2013-02-25 2 views
1

У меня есть несколько файлов в каталоге/вар/Журнал/uwsgi/с именем похож на domain.123456789 Я пытаюсь петлю над файлами, как указано нижезамена файла дает синтаксическую ошибку в скрипте, работает в консоли

for FILE in /var/log/uwsgi/domain.+([[:digit:]]); do   
    gzip $FILE; 
done 

это работает в консоли. но при запуске как части скрипта я получаю следующую синтаксическую ошибку.

script.sh: line 16: syntax error near unexpected token `(' 

Как я могу использовать подстановку в сценариях оболочки?

ответ

4

Убедитесь, что опция extglob оболочки включена в вашем скрипте, добавив:

shopt -s extglob 

Без этого, оболочка не распознает +([[:digit:]]) шаблона, и вы получите сообщение об ошибке.

Возможно, вы уже установили этот параметр в своем профиле bash, поэтому он работает в консоли.

+0

спасибо, я не знал о shopt. – hinoglu

Смежные вопросы