Je remarque que certains exemples de bash pour les boucles sont répartis sur plusieurs lignes dans les exemples
for VARIABLE in file1 file2 file3
do
command1 on $VARIABLE
command2
commandN
done
(par exemple ici http://www.cyberciti.biz/faq/bash-for-loop/ ) Comment entrer une nouvelle ligne dans le terminal bash (j'utilise du mastic)? Lorsque j'appuie sur Entrée à la fin d'une ligne, le système l'exécute.
bash
line-editor
giorgio79
la source
la source
bash
vous pouvez utiliser la combinaison de touchesCtrl + x + e
pour ouvrir le contenu de l'invite de commande dans un éditeur tel que vim où vous pouvez travailler plus facilement, lorsque vous avez terminé , vous pouvez quitter l'éditeur et la commande sera exécutée.Réponses:
Lorsque vous appuyez Enterà la fin de:
Le shell ne peut rien exécuter car cette
for
boucle n'est pas terminée. Au lieu de cela, il imprimera une invite différente, l'$PS2
invite (généralement>
), jusqu'à ce que vous entriez la fermeturedone
.Cependant, après que
>
s'affiche, vous ne pouvez pas revenir en arrière pour modifier la première ligne.Alternativement, au lieu de taper Enter, vous pouvez taper Ctrl-VCtrl-J. De cette façon, le caractère de nouvelle ligne (aka
^J
) est entré sans que le tampon actuel soit accepté , et vous pouvez ensuite revenir à l'édition de la première ligne plus tard.Dans
zsh
, vous pouvez appuyer sur Alt-Enterou EscEnterpour insérer un caractère de nouvelle ligne sans accepter le tampon actuel. Pour obtenir le même comportementbash
, vous pouvez ajouter à votre~/.inputrc
:(
\026
étant le^V
personnage).la source
Ctrl-J
commencer etCtrl-D
finir a fini par bien fonctionner pour moi.