2017-05-08 57 views
0

我想嘗試find在bash中的一些腳本。使用查找和大括號擴展找到腳本

FOLDERS='one,two' 
eval find "{$FOLDERS}/*.sh" 

當然,我想這樣做沒有eval。但是,消除EVAL只是給出:

find: {one,two}/*.sh: No such file or directory 

我怎樣才能讓find接受可變一套使用像括號擴展的文件夾,並且不使用循環?

回答

1

使用數組,然後可以直接擴展數組元素。

folders=(one two) 
find "${folders[@]}" -name '*.sh' 

這樣做的好處是即使文件夾中有空格,逗號或其他特殊字符,它也能正常工作。

folders=('comma,separated,name' 'My Documents')