2011-12-22 3 views
3

У меня есть простой Баш скрипт, где я произвожу некоторые временные файлы, используя разделение, сделать некоторые обработки, а затем попытаться отследить все файлы в конце и объединить ихБаш скрипт переменной мимолетный найти

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

В оболочке, одиночные кавычки (') вызывает то, что внутри должно интерпретироваться буквально. То, что вы хотите сделать, это использовать двойные кавычки (") вокруг выражения с $rand_int.

Так что для выражения find:

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

красиво! Смешно, я использовал Perl (то же самое соглашение), и это даже не пришло мне в голову – lonestar21

1

использование «» вместо «»

for f in $(find . -amin -200 -regex ".*$rand_int.*"); do 
Смежные вопросы