2011-12-22 50 views
3

我有一个简单的bash脚本,我产生采用分体式一些临时文件,做一些处理,然后尝试追查末的所有文件,并把它们合并bash脚本变量传递找到

rand_int=$RANDOM 
split -d -l $n_lines_split $1 $rand_int #works fine 

for f in $(find . -amin -200 -regex '.*$rand_int.*'); do 
    (some processing here) ; 
done 

我问题是在find命令中$ rand_int是从字面上解释的,而我想使用变量的值。

回答

5

在shell下,单引号(')导致里面的内容进行字面解释。你想要做的是在$rand_int的表达式周围使用双引号(")。

所以对于find表达:

find . -amin -200 -regex ".*$rand_int.*" 
+0

漂亮! 有趣的是,我曾经使用过Perl(相同的约定),而我甚至没有想过 – lonestar21

1

使用 “”,而不是'

for f in $(find . -amin -200 -regex ".*$rand_int.*"); do