Subshell dentro de citações

0

Estou escrevendo um pequeno script de shell como este:

curl -X POST --header 'Bearer "$(printf  user:pass | base64)"' 'https://api.com/v1/auth'

Para depurar, mudei para echo:

echo 'Bearer "$(printf  remote-key-sync:2klic-hlqDZPGmqJTwhqVkPubld9ReXAnQSks | base64)"' 

Mas o resultado é:

Bearer "$(printf  remote-key-sync:2klic-hlqDZPGmqJTwhqVkPubld9ReXAnQSks | base64)"

Como posso atualizar meu comando curl para que ele envie --header 'Bearer myBase64String' com os resultados da subshell dentro da aspa simples?

    
por Philip Kirkbride 07.08.2017 / 15:14

1 resposta

6

Comece refatorando seu código.

bearer="Bearer \"$(printf user:pass | base64)\""
curl -X POST --header "$bearer" 'https://api.com/v1/auth'

Agora, quando você vai depurar, você não precisa citar o (s) argumento (s) novamente.

echo curl -X POST --header "$bearer" 'https://api.com/v1/auth'
    
por 07.08.2017 / 15:21