Я пытаюсь написать сценарий, но я застрял здесь. Смотрите код, пожалуйста!
aug@august:~/play$ for i in {1..100..4}
> do
> echo "august"
> touch august $i+$2
> mkdir dir
Есть ли способ перейти на предыдущую строку? Я имею в виду, что был опечатка, я сделал в touch august $i+$2
. Нажал ENTERклавишу, поэтому я перешел на новую линию. Как я могу вернуться к предыдущей строке?
command-line
bash
rɑːdʒɑ
источник
источник
Ответы:
bash
Редактор командной строки не поддерживает это, либо делайте так, как подсказывает anwar, либо храните все в одной строке, разделенные точкой с запятой, или помещайте это в файл сценария.На заметку,
zsh
есть функции, которые помогают с этим.zsh
Строчный редактор (zle
) является более полнофункциональным редактором и поддерживает перемещение внутри команды многострочных. Когда команда становится слишком длинной для обработки,zle
она имеет встроенную функциюedit-command-line
, которая открывает командную строку в вашем любимом редакторе. Обычно это не связано, попробуйте с:Alt-e должен активировать его, сохранить и выйти, чтобы вернуться в командную строку.
источник
После того, как вы нажали Enterи получили сообщение об ошибке, вы можете просто вернуться в историю:
Просто нажмите ↑клавишу на клавиатуре, чтобы исправить опечатку. Если вы нажмете клавишу, ↑терминал покажет вам эту строку:
Исправьте опечатки вокруг
touch august $i+$2
и добавьтеdone
в конце команды.Затем нажмите Enterклавишу. Это должно решить вашу проблему.
источник
как объяснено здесь , в bash у вас есть команды для управления историей, как указано в руководстве. Одним из них является
edit-and-execute-command
.Это откроет ваш редактор с вашими командами, уже введенными во временный файл, и вы можете легко исправить предыдущие строки. Вы можете добиться этого в режиме emacs с помощью
C-xC-e
, и в режиме vi, нажавv
в обычном режиме.источник
Это то, что сработало для меня.
CTRL+ Cот текущего
command
. Затем нажмите ↑. Теперь вы можете редактировать любую нужную вам строку, перемещаясь сarrow buttons
- ← ↑ →или ↓.Удачи...
источник