Использование внешних условий с функциями в bash

В рамках моего сценария bash я занимаюсь оптимизацией некоторой функции, которая принимает входные файлы csv и обрабатывает их с помощью некоторого сценария AWK. Это функция, которая работает с входными файлами:

rescore_data () {
# accepting $str file(s) given outside the function in bash
echo "DEBUG info: The following CSV file is being processed:" $str
str_name=$(basename ${str} .csv)
printf >&2 "Dataset for ${str_name} is being rescored...  "; sleep 0.1 
mkdir ${rescore}/${str_name}
# applying this AWK code on many directories, each of which contains target csv file(s)
while read -r d; do
awk -F ", *" '# SOME AWK CODE and save output inside the same directory (d)                
'  "${d}_"*/${str} > "${rescore}/${str_name}/"${d%%_*}".csv" 
done
}

И это поток управления, как эта функция может быть вызвана внутри сценария bash в соответствии с двумя различными условиями, определенными вручную (1 — работа только с одним файлом; 2 — цикл по нескольким файлам из списка и обработка каждого функцией):

# list of target CSV filles
strategies=('*str1.csv' '*str2.csv' '*str3a.csv' '*str3b.csv')
if [[ "${MY_FILT_METHOD}" == 1 ]]; then
   # this is a target file present in each of the directories
   str="*str1.csv"
   # run rescore_data function to process it
   rescore_data 
  elif [[ "${MY_FILT_METHOD}" == 0 ]]; then 
   # in each dir there are several target filles, defined in the array list
   for str in ${strategies[@]}; do
    rescore_data
   done
  else
   echo "GREAT NEWS: when you see this message, you code is wrong!"
  fi

Можно ли изменить этот рабочий процесс для автоматического определения переменной $ str внутри функции в соответствии с той же переменной, которая указана в части условий IF потока управления?

0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *