2013-02-25 17 views
1

我在/ var幾個文件/日誌/ uwsgi /命名類似於domain.123456789 我試圖遍歷所有的文件,下面文件名替換給出腳本語法錯誤,工作在控制檯

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

這在控制檯中工作。但作爲腳本的一部分運行時,出現以下語法錯誤。

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

如何在shell腳本中使用替換?

回答

4

確保extglob外殼選項在腳本中啓用加入:

shopt -s extglob 

沒有這一點,外殼也不會承認你的+([[:digit:]])模式,你會得到一個錯誤。

你可能已經在你的bash配置文件中有這個設置,這就是它在控制檯中工作的原因。

+0

謝謝你,我不知道關於shopt。 – hinoglu 2013-02-25 14:55:00

相關問題