Prepara argumentos contendo string entre aspas na variável

3

Em um script Bash, eu chamo um programa como este em vários lugares:

numfmt --suffix=" B" --grouping 231210893

Onde o número é diferente a cada vez, mas os outros parâmetros permanecem os mesmos.

Gostaria agora de mover os outros parâmetros para fora das muitas chamadas diferentes, para que eles sejam definidos centralmente e possam ser facilmente alterados. Minha tentativa foi assim:

NUMFMT='--suffix=" B" --grouping'
...
numfmt $NUMFMT 231210893

Infelizmente, isso não funciona. Os sinais de cotação são removidos em algum momento, e numfmt reclama sobre um argumento extra não interpretável B . Eu tentei muitas outras versões, usando outras citações tanto na definição quanto no uso de NUMFMT , sem sucesso.

Como faço isso corretamente? E se não for muito complicado, eu também gostaria de entender por que minha versão não funciona e (espero) que outra funcione.

    
por A. Donda 18.11.2018 / 01:42

2 respostas

6

Experimente matrizes:

NUMFMT=( --suffix=" B"   '--grouping' )
....
numfmt "${NUMFMT[@]}" 231210893
    
por 18.11.2018 / 02:21
0

Este não seria um caso excelente para um alias ?

$ alias nfmtB='numfmt --suffix=" B" --grouping'
$ nfmtB 324235345656
324.235.345.656 B
    
por 18.11.2018 / 12:52