Je voudrais écrire une commande structurée sur plusieurs lignes comme
$ for i in *;
→ do
→ file $i;
→ done
bmdt.md: ASCII text
breakfast.md: ASCII text
brmdh.md: ASCII text
test.sh: Bourne-Again shell script text executable, ASCII text
mais trouvez l'onglet ne fonctionne pas,
Comment pourrais-je activer la touche de tabulation dans la console bash?
Réponses:
Lorsque vous appuyez sur Enteraprès avoir entré une commande incomplète, le
bash
shell affiche une invite de continuation (l'invite secondaire$PS2
) et vous permet de terminer la commande entrée. Les fonctionnalités d'édition de la ligne de commande du shell à ce stade sont les mêmes qu'à l'invite d'origine (l'invite principale$PS1
), ce qui signifie que la Tabclé exécutera la commande et le nom de fichier comme d'habitude.Pour insérer un caractère de tabulation, utilisez Ctrl+V Tabou utilisez des espaces pour le retrait. Les tabulations (ou tout autre caractère littéral) peuvent toujours être insérées si elles sont préfixées par Ctrl+V.
Alternativement, si en mode d'édition de ligne de commande Emacs (qui, je crois, est le mode par défaut
bash
), utilisez Ctrl+X Ctrl+Epour faire apparaître un éditeur dans lequel entrer votre commande. L'éditeur utilisé sera celui spécifié par laEDITOR
variable shell / environnement, ouemacs
si cette variable n'est pas définie.En mode d'édition de ligne de commande Vi, appuyez sur Escape vpour faire la même chose.
La commande sera exécutée après avoir enregistré et quitté l'éditeur.
la source
set -o vi
et qui vous donne la possibilité d'utiliser des commandes d'édition Vi / Vim sur la ligne de commande, comme (Esc
)dw
pour supprimer jusqu'à la fin du mot actuel, etc. Utilisezset -o emacs
pour revenir en mode d'édition de ligne de commande Emacs.Ctrl+X
Ctrl+E
, le shell l'ouvrira pour vous.