bash:在find函数中使用param填充数组

时间:2013-09-06 08:52:04

标签: arrays bash find parameter-passing

我正在通过脚本搜索文件。要使用结果,find会使用结果填充数组。我正在以这种方式进行攻击

RANGE=$1
arr=( $(find /net/nas3/mediadata/xmlprodpictures/tui ! -iname "* *" -iregex '.*/big/[${RANGE}]/.*\(jpg\|gif\|png\|jpeg\)' -type f | sort) ) 

它不起作用,如果我直接在行中设置参数,它就会起作用。

正确转义的问题?

提前THX

1 个答案:

答案 0 :(得分:2)

请尝试使用readarray

RANGE=$1
readarray -t ARR < <(find /net/nas3/mediadata/xmlprodpictures/tui ! -iname "* *" -iregex ".*/big/[${RANGE}]/.*"'\(jpg\|gif\|png\|jpeg\)' -type f | sort)
printf "Value: %s\n" "${ARR[@]}"