Muchas veces he ejecutado un comando con todas las letras en mayúscula (tal vez porque CapsLockestaba activado), y presioné Enterantes de darme cuenta.
¿Cómo puedo ejecutar el último comando con todas las letras transformadas a minúsculas?
command-line
bash
history
Radu Rădeanu
fuente
fuente

!!:l.Respuestas:
Puede lograr eso agregando la siguiente función pequeña (lo llamo
??muy simple, pero puede cambiar esto como lo desee) en su.bashrcarchivo:A continuación, cuándo correrás:
el último comando se ejecutará con todas las letras en minúsculas.
Explicación
!!: esto es parte de las herramientas de historial de bash, específicamente, se expande hasta la última ejecución del comando . Entonces, por ejemplo,echo !!imprimirá el último comando ejecutado en esta sesión de shell en particular."${@,,}: La construcción${foo,,}convertirá el contenido de la variable$fooconvertida a todas las letras minúsculas.$@es la matriz de parámetros posicionales. Cuando se usa dentro de una función, se expande a los parámetros pasados a esa función.Entonces,
"${@,,}"simplemente convertirá lo que se pasó a la función en minúsculas y luego lo ejecutará. Por lo tanto, ejecutar la??función!!como parámetro convertirá el último comando a minúsculas y lo ejecutará.fuente
"!!".??convierte sus letras de argumentos en minúsculas y!!reescribe automáticamente el comando anterior en el comando actual (así que??toma como argumento el comando anterior).La clave está en las
`citas (backticks), que ejecuta la salida como un comando.fuente
trsería mi primera opción también. También funciona (alternativa a los backticks y sin las clases de soporte POSIX):$( echo !! | tr '[A-Z]' '[a-z]')aquí viene una respuesta de los programadores ... use python:
O rubí:
O Perl (probablemente mi favorito):
O PHP:
O Awk:
O sed:
O Bash:
O zsh
O NodeJS si lo tienes:
También podría usar
dd(¡pero no lo haría!):También puede crear un pequeño script para hacer el trabajo:
Que usas así:
fuente
Y el que tiene
sed,Ejemplo:
Salida:
fuente