Estoy siguiendo un tutorial y menciona ejecutar este comando:
sudo chmod 700 !$
No estoy familiarizado con !$
. Qué significa eso?
bash
command-history
Andrés
fuente
fuente
echo
algo si no está seguro de lo que hará.echo $(rm -rf /)
--no-preserve-root
opción allí, y si ve las palabras "no preservar" en un programa, es mejor que piense detenidamente sobre lo que hace.Respuestas:
Básicamente, es el último argumento del comando anterior.
( fuente ; guía práctica, por cierto)
No vale nada la distinción entre este
!$
token y la variable de shell especial$_
. De hecho, ambos se expanden al último argumento del comando anterior. Sin embargo,!$
se expande durante la expansión del historial , mientras que$_
se expande durante la expansión de parámetros . Una consecuencia importante de esto es que, cuando usa!$
, el comando expandido se guarda en su historial.Por ejemplo, considere las pulsaciones de teclas
echo Foo
Enterecho !$ Jar
Enter Up Enter; yecho Foo
Enterecho $_ Jar
Enter Up Enter.(Los únicos caracteres cambiados son
$!
y$_
en el medio).En el primero, cuando presiona Up, se lee la línea de comando
echo Foo Jar
, por lo que la última línea escrita en stdout esFoo Jar
.En el último, cuando presiona Up, la línea de comando se lee
echo $_ bar
, pero ahora$_
tiene un valor diferente al que tenía anteriormente; de hecho,$_
es ahoraJar
, por lo que la última línea escrita en stdout esJar Jar
.Otra consecuencia es que
_
puede usarse en otras expansiones de parámetros, por ejemplo, la secuencia de comandosimpresiones
isomorphism isosceles
. Pero no hay una "${!$%morphism}
" expansión análoga .Para obtener más información sobre las fases de expansión en Bash, consulte la
EXPANSION
sección deman 1 bash
(esto se llama Expansiones de Shell en la edición en línea). LaHISTORY EXPANSION
sección está separada.fuente
!$
insert-last-argument
, generalmente vinculado aM-.
.Estrictamente hablando
!$
es la última palabra del último comando de la lista del historial.Ejemplos:
fuente
!$
le dará el último comando utilizado para ese usuario en particular ...también puede encontrar el historial de comandos utilizados anteriormente mediante el
history
comando ... pruébelo ...NOTA: Para un usuario en particular, todos los comandos utilizados anteriormente se almacenarán en el archivo de historial bash.
fuente