У меня есть функция, которая принимает несколько аргументов. Я также передаю строку с регулярным выражением в ней. Но когда он получает eval
, другие параметры становятся испорченными.Как передать регулярное выражение функции
код как ниже -
function foo() {
eval DIR_NAME='$'$1
MAX_DEPTH=$2
eval FILE_PATTERN=$3
RETENTION_PERIOD=$4
eval MOVE_PATH='$'$5
find . -maxdepth "$MAX_DEPTH" -type f -name "$FILE_PATTERN" -mtime +"$RETENTION_PERIOD" -print | ...
}
DIR_NAME="/my/path"
MAX_DEPTH=2
FILE_PATTERN="*.txt"
RETENTION_PERIOD=30
TARGET_DIRECTORY="/move/to/path"
foo DIR_NAME $MAX_DEPTH $FILE_PATTERN $RETENTION_PERIOD TARGET_DIRECTORY
Теперь проблема заключается в find
команды $FILE_PATTERN
становится расширенной и подставляя себя со всеми .txt
файла в пути и RETENTION_PERIOD
, MOVE_PATH
переменные становятся замещены другими .txt
файлы.
Любое решение для этого?