Después de de una extensa compilación de datos pudimos resolver esta incógnita que suelen tener algunos de nuestros usuarios. Te brindamos la solución y nuestro objetivo es resultarte de gran ayuda.
Solución:
El signo de exclamación es parte de la expansión del historial en bash. Para usarlo, lo necesita encerrado entre comillas simples (por ejemplo: 'http://example.org/!132'
) o para escapar directamente con una barra invertida () antes del carácter (por ejemplo:
"http://example.org/!132"
).
Tenga en cuenta que entre comillas dobles, una barra invertida antes del signo de exclamación evita la expansión del historial, PERO la barra invertida no se elimina en tal caso. Por lo tanto, es mejor usar comillas simples para no pasar una barra invertida literal a curl
como parte de la URL.
Además de la respuesta dada por Daniel, también puede simplemente desactivar la expansión del historial por completo si no la usa con set +H
.
Personalmente, haría comillas simples, pero para completar, también anotaré que, dado que es una URL, puede codificar el !
como %21
p.ej curl -v http://example.org/%21132
.
Finalizando este artículo puedes encontrar las explicaciones de otros sys admins, tú además puedes mostrar el tuyo si lo crees conveniente.