11 votes

Enregistrer la commande dans l'historique sans l'exécuter dans bash

Existe-t-il un moyen de sauvegarder une commande dans l'historique de bash sans l'exécuter ? Par exemple

$ cmd [a long list of arguments] 

et maintenant pendant que je tape, je me souviens que j'aimerais faire autre chose avant. Est-ce que je peux avoir quelque chose comme

$ cmd [a long list of arguments][some-key-strokes]

et cela ne s'exécute pas réellement mais va dans l'historique de bash pour que je puisse l'utiliser plus tard ?

9voto

chepner Points 6381

Utilisez le -s à l'option history commandement :

history -s cmd arg1 arg2

L'appel à history -s lui-même, commodément, n'est pas ajouté à l'historique des commandes, donc dans votre historique il apparaît comme si vous aviez exécuté cmd sans le faire réellement.

6voto

Licenta Windows Points 11

Il y a peut-être un meilleur moyen, mais vous pouvez utiliser l'expansion de l'histoire :p pour imprimer la ligne de commentaire courante sans l'exécuter. !# est la ligne actuelle, et % par lui-même ne correspondra à rien

$ cmd [arguments] !#%:p

2voto

user3726536 Points 21

Normalement, j'ajoute simplement un # au début de la ligne pour transformer la ligne en commentaire :

#cmd [a long list of arguments] 

Je préfère cette méthode parce que vous pouvez le faire avec seulement 3 [4 si vous avez besoin de SHIFT pour insérer #] frappes.

^a#<ENTER>

^a va au début de la ligne en cours

# ajoute le commentaire

ENTER exécute le commentaire

1voto

hek2mgl Points 753

En général, cela se fait par

echo 'cmd [a long list of arguments]' >> /home/you/bash_history

Notez que le nom de l'historique peut être différent sur votre système. Vous pouvez donc utiliser l'option HISTFILE var environnement

ce qui fait :

echo 'cmd [a long list of arguments]' >> "$HISTFILE"

1voto

Dans ce cas, je fais précéder la ligne d'un #, puis j'appuie sur Entrée.

... ou utilisez la combinaison de touches : ESC #

bind -p | grep -i 'insert-comment'   # "\e#": insert-comment

Voir aussi : Bash - enregistrer la commande sans l'exécuter

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X