Função Dinâmica [fechada]

0

Estou tentando criar um script que aceite entradas dos arquivos listados em um determinado diretório e, com base no conteúdo desses arquivos, processe determinados comandos. Aqui está o cenário:

Eu tenho 5 arquivos listados em / tmp / DIR / - File1 File2 File3 File4 File5 Cada arquivo possui dados / strings diferentes que precisam ser comparados a um determinado valor e retornar a saída.

Eu sei que isso pode ser feito por métodos mais fáceis, como escrever um script separado para cada arquivo ou por uma longa lista de if / else para comparar, mas o que eu estou procurando por algum tipo de função dinâmica que retorne vários valores baseados em arquivo nomes e, em seguida, pode ser submetido a outra função para processar.

    
por PratiqueManUTD 02.05.2018 / 11:35

1 resposta

0

Eu costumo fazer isso com arrays associados / hash no bash (outros shells são diferentes).

declare -A file_values=( [file1]="value1" [file2]="value2" )
mapfile files < <( find /tmp/DIR -name "File?" -printf "%f\n" )
for f in "${files[@]}"
do
    output="output from file $f"
    if [ "${output}" = "${file_values[${f}]}" ]; then 
...
    fi
done
    
por 02.05.2018 / 12:53