Lorsque je tape dans bash et que j'appuie sur la touche "tab" pour terminer automatiquement, cela prend parfois beaucoup de temps. Par exemple, le fichier IO pour lire les répertoires prend> 5 secondes, et donc je suis suspendu en attendant que IO se termine avant de pouvoir continuer à taper. Je suis frustré et Ctrl-C pour pouvoir refaire ce que je tapais.
Ctrl-C est regrettable, car je dois tout retaper à nouveau. Comment puis-je dire à bash d'arrêter d'essayer de répondre à ma demande de fin automatique.
$ /long/path/to/some/d # once I've typed this, I press <TAB>. I now will be
# stuck waiting for perhaps 10 seconds. The only thing I
# know to do is Ctrl-C. When I press Ctrl-C, I am forced
# to retype the original command string.
$
bash
autocomplete
Chris
la source
la source
Réponses:
Je viens de trouver ça ici .
Utilisez
Ctrl+\
. Il arrêtera l'achèvement et reviendra à votre ligne de commande sans perdre la commande actuelle.la source
Vous pouvez rencontrer des problèmes similaires sans avoir terminé la tabulation. Cela n'introduit aucune différence technique, c'est-à-dire que les mêmes solutions s'appliquent.
Une possibilité consiste à démarrer la recherche en arrière-plan et à écrire le résultat dans une FIFO. Vous pouvez lire à partir du FIFO avec un délai d'attente puis (
read -t 0.3 ...
).Je suppose que j'ai vu une solution plus simple que les FIFO ici récemment ... mais actuellement je ne m'en souviens pas.
read -t
fonctionne également avec un pipeline, mais la finition deread
ne tue pas les parties antérieures du pipeline et le pipeline ne revient qu'après la fin de toutes ses parties.la source
Sur Ubuntu 16.04, la frappe a
q
fonctionné pour moi.Voir ce https://unix.stackexchange.com/a/341025/332159 .
la source