remove aspas simples do resultado do comando interno

0

Estou tentando executar o comando bash

gcloud compute ssh "instanceName" -- "sudo reboot"

com outro comando bash interno (que me fornece o nome da instância)

gcloud compute instances list | grep auth- | awk '{print $1}')

Por isso, imprime auth-tqcl - o nome da instância sem nenhuma aspas. Isso é bom.

O comando inteiro é assim:

 gcloud compute ssh "$(gcloud compute instances list | grep auth- | awk '{print $1}')" -- "sudo reboot"

E eu tenho erro:

Invalid value 'auth-tqcl'. Values must match the following regular expression.

Parece que eu tenho ' caracteres extras antes e depois do nome da instância: 'auth-tqcl' :

 gcloud compute ssh 'auth-tqcl' -- 'sudo reboot'

Mas quando eu copio e colo este comando pronto e o executo sem o comando bash interno, ele funciona bem.

Então, minha pergunta é: como me livrar do ' extra em 'auth-tqcl' quando executo o comando bash

$(gcloud compute instances list | grep auth- | awk '{print $1}')

dentro de outro comando bash.

Estou usando um terminal padrão no mac os.

Atualizar

Aqui está a prova da cotação extra:

$ set -x; gcloud compute ssh "$(gcloud compute instances list | grep auth- | awk '{print $1}')" -- "sudo reboot"; set +x;
++(:1):  myMac $ gcloud compute instances list
++(:1):  myMac $ grep auth-
++(:1):  myMac $ awk '{print $1}'
+(:9):  myMac $ gcloud compute ssh 'auth-tqcl' -- 'sudo reboot'
ERROR: (gcloud.compute.ssh) Could not fetch resource:
 - Invalid value 'auth-tqcl'. Values must match the following regular expression: '[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?'

Atualização 2

gcloud compute instances list | grep auth- resposta sem aspas:

$ gcloud compute instances list | grep auth-
auth-tqcl    europe-west1-b  n1-standard-1               xx.xxx.x.x   xx.xxx.xx.xx    RUNNING

Atualização 3

$ gcloud compute instances list | grep auth- | awk '{print $1}' | od -c
0000000  033   [   1   ;   3   7   ;   4   1   m 033   [   K   a   u   t
0000020    h   - 033   [   m 033   [   K   t   q   c   l  \n            
0000035
    
por Maxim Yefremov 20.06.2018 / 10:46

1 resposta

1

Para resolver isso, preciso desabilitar as cores do grep:

isso funciona:

gcloud compute ssh "$(gcloud compute instances list | GREP_OPTIONS= grep auth- | awk '{print $1}')" -- "sudo reboot"
    
por 20.06.2018 / 14:28

Tags