Eu finalmente descobri uma maneira de fazer isso, use um método chamado urlencode para analisar o passe em "gkoq% 40Ggk% 215648% 40% 23" e então colocá-lo diretamente em meus scripts. Para analisar o passe use este link link
Eu escrevi um script para chamar API, código como abaixo:
#!/bin/bash
curl -s "https://openapi.domain.com/api/rest/login?user=khoitran&pass=gkoq@Ggk!5648@#&output=json"
o script não funcionou, então tentei executá-lo fora do script para descobrir o que estava errado. Acontece que meu passe complicado é a causa
vagrant@vagrant-ubuntu-trusty-64:~$ curl -s "https://openapi.domain.com/api/rest/login?user=khoitran&pass=gkoq@Ggk!5648@#&output=json"
-bash: !5648: event not found
(meu passe é: gkoq @ Ggk! 5648 @ #)
Eu tentei várias maneiras de lidar com essa senha (claro, exceto alterá-lo, lol), mas nada funciona. Você poderia, por favor, aconselhar.
O !
não está sendo traduzido como !
, na verdade, está sendo executado como um comando. Então, coloque sua senha entre aspas simples '
:
'gkoq@Ggk!5648@#'
Você pode testá-lo com uma linha de eco para verificar se está funcionando corretamente:
:~$ echo 'gkoq@Ggk!5648@#'
gkoq@Ggk!5648@#
Agora, defina a variável pass
para ela:
:~$ pass='gkoq@Ggk!5648@#'
:~$ echo $pass
gkoq@Ggk!5648@#
Espero que isso ajude!