Associando variáveis a um arquivo de loop específico

2

Eu quero usar for para um conjunto de arquivos.

for file in fileA fileB fileC; do
    COMMAND $file $variable
done

Para cada $file , desejo usar $variable específico.
(por exemplo: fileA variableA; fileB variableB)

Como pode essa associação?

    
por PoGibas 22.06.2013 / 01:22

2 respostas

2
declare -A filevars
filevars[fileA]=foo
filevars[fileB]=bar
filevars[fileC]=baz
for file in fileA fileB fileC; do
  echo cmd "$file" "${filevars[$file]}"
done
    
por 22.06.2013 / 01:42
3

Como você está na v4 de bash , as matrizes associativas são uma opção

declare -A arr
arr=([fileA]=variableA [fileB]=variableB [fileC]=variableC)
for file in "${!arr[@]}"
 do
    command "$file" "${arr[$(basename $file)]}"
done

Observe que a ordem de processamento pode ser diferente da ordem na definição da matriz

    
por 22.06.2013 / 01:52

Tags