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
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?
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