Plusieurs fois, j'ai exécuté une commande avec toutes les lettres en majuscules (peut-être parce que CapsLockc'était activé), et j'ai appuyé Enteravant de réaliser cela.
Comment puis-je exécuter la dernière commande avec toutes les lettres transformées en minuscules?
command-line
bash
history
Radu Rădeanu
la source
la source
!!:l
.Réponses:
Vous pouvez accomplir cela en ajoutant la petite fonction suivante (je l'appelle
??
très simple, mais vous pouvez changer cela comme vous le souhaitez) dans votre.bashrc
fichier:Ensuite, lorsque vous exécuterez:
la dernière commande sera exécutée avec toutes les lettres en minuscules.
Explication
!!
: cela fait partie des outils d'historique de bash, en particulier, il se développe jusqu'à la dernière exécution de la commande . Ainsi, par exemple,echo !!
affichera la dernière commande exécutée dans cette session shell particulière."${@,,}
: La construction${foo,,}
convertira le contenu de la variable$foo
convertie en toutes les lettres minuscules.$@
est le tableau de paramètres positionnels. Lorsqu'il est utilisé à l'intérieur d'une fonction, il est étendu aux paramètres passés à cette fonction.Donc,
"${@,,}"
il suffit de convertir tout ce qui a été transmis à la fonction en minuscules, puis de l'exécuter. Par conséquent, l'exécution de la??
fonction avec!!
comme paramètre convertira la dernière commande en minuscules et l'exécutera.la source
"!!"
.??
convertit ses lettres d'arguments en minuscules et!!
réécrit automatiquement la commande précédente dans la commande en cours (??
prend donc comme argument la commande précédente).La clé se trouve dans les
`
(guillemets) citations - qui exécutent la sortie comme une commande.la source
tr
serait aussi mon premier choix. Fonctionne également (alternative aux backticks et sans les brackets POSIX):$( echo !! | tr '[A-Z]' '[a-z]')
voici une réponse des programmeurs .... utilisez python:
Ou Ruby:
Ou Perl (probablement mon préféré):
Ou PHP:
Ou Awk:
Ou Sed:
Ou Bash:
Ou zsh
Ou NodeJS si vous l'avez:
Vous pouvez également utiliser
dd
(mais je ne le ferais pas!):Vous pouvez également créer un petit script pour faire le travail:
Que vous utilisez comme ça:
la source
Et celui avec
sed
,Exemple:
Production:
la source