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"
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.
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])?'
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
$ 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
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"
Tags bash