Передача переменной скрипта bash для поиска - PullRequest
3 голосов
/ 22 декабря 2011

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

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

Моя проблема в том, что вКоманда поиска $ rand_int интерпретируется буквально, тогда как я хочу использовать значение переменной.

Ответы [ 2 ]

5 голосов
/ 22 декабря 2011

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

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

find . -amin -200 -regex ".*$rand_int.*"
1 голос
/ 22 декабря 2011

используйте "" вместо "1001 *

for f in $(find . -amin -200 -regex ".*$rand_int.*" ); do 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...