Usando o comando de amostra abaixo, em curvas, não funciona como esperado:
curl -ik "http://localhost/index.php?username=parto&password=hello!23"
Espero que os parâmetros sejam passados para incluir:
username = parto
password = hello!23
Mas a parte !23
na senha é interpretada como um designador de evento histórico . Se o 23º comando for sudo apt-get update
, os comandos se tornarão:
curl -ik "http://localhost/index.php?username=parto&password=hellosudo apt-get update"
Event Designators
An event designator is a reference to a command line entry in the
history list. Unless the reference is absolute, events are relative
to the current position in the history list.
>! Start a history substitution, except when followed by a blank,
newline, = or (.
!n Refer to command line n.
!-n Refer to the current command minus n.
!! Refer to the previous command. This is a synonym for '!-1'.
!string
Refer to the most recent command preceding the current
position in the history list starting with string.
!?string[?]
Refer to the most recent command preceding the current
position in the history list containing string. The trailing
? may be omitted if string is followed immediately by a
newline.
^string1^string2^
Quick substitution. Repeat the last command, replacing
string1 with string2. Equivalent to ''!!:s/string1/string2/''
(see Modifiers below).
!# The entire command line typed so far.
Sem usar caracteres extras, conforme descrito na man page (citada acima), como podemos dizer ao terminal que NÃO interprete o comando acima (! 23) como um designador de evento?