J'ai écrit un script pour appeler l'API, code comme ci-dessous:
#!/bin/bash
curl -s "https://openapi.domain.com/api/rest/login?user=khoitran&pass=gkoq@Ggk!5648@#&output=json"
le script n'a pas fonctionné, j'ai donc essayé de l'exécuter en dehors du script pour découvrir ce qui n'allait pas. Il se trouve que ma passe compliquée est la cause
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
(ma passe est: gkoq @ Ggk! 5648 @ #)
J'ai essayé plusieurs façons de gérer ce mot de passe (bien sûr, sauf le changer, lol), mais rien ne fonctionne. Pourriez-vous s'il vous plaît conseiller.
J'ai finalement trouvé un moyen de le faire. Utilisez une méthode appelée urlencode pour analyser le passe dans "gkoq% 40Ggk% 215648% 40% 23", puis insérez-le directement dans mes scripts. Pour analyser le laissez-passer, utilisez ce lien https://www.tools4noobs.com/online_php_functions/urlencode/
Le !
n'est pas traduit en tant que !
, il est en train de l'exécuter en tant que commande. Donc, mettez votre mot de passe entre guillemets simples '
:
'gkoq@Ggk!5648@#'
Vous pouvez le tester avec une ligne d'écho pour vous assurer qu'il fonctionne correctement:
:~$ echo 'gkoq@Ggk!5648@#'
gkoq@Ggk!5648@#
Définissez maintenant la variable pass
:
:~$ pass='gkoq@Ggk!5648@#'
:~$ echo $pass
gkoq@Ggk!5648@#
J'espère que cela t'aides!