Как вернуться к предыдущей строке сценария в терминале?

Я пытаюсь записать сценарий, но я застреваю здесь. См. код!

aug@august:~/play$ for i in {1..100..4}
> do
> echo "august"
> touch august $i+$2
> mkdir dir

Там какой-либо путь состоит в том, чтобы пойти предыдущая строка? Я подразумеваю, что была опечатка, я выполнил touch august $i+$2. Клавиша ENTER Ipressed, таким образом, я пошел для новой строки. Как я могу возвратиться к предыдущей строке?

8
задан 8 September 2012 в 12:00

4 ответа

bash редактор командной строки не поддерживает это, или делает как , anwar предлагает, или сохраните все на одной строке разделенным точками с запятой или поместите ее в файл сценария.

На ноте стороны, zsh имеет функции та справка с этим. zsh строчный редактор (zle) является более полно известным редактором и поддержками, перемещающимися в рамках многострочной команды. Когда команда становится слишком длинной для обработки в zle, она имеет встроенную функцию, edit-command-line, который открывает командную строку в любимом редакторе. Это обычно не связывается, попробуйте:

bindkey "^[e" edit-command-line

Alt-e должен теперь активировать его, сохранить и выйти для возвращения к командной строке.

1
ответ дан 21 October 2019 в 10:44

как объяснено здесь , в ударе у Вас есть Команды для Управления Историей, как указано в, он является ручным. Один из них edit-and-execute-command.

Это откроет Вашего редактора с Вашими командами, уже введенными во временном файле, и можно исправить предыдущие строки легко. Можно достигнуть этого в emacs режиме C-xC-e и vi режиме путем нажатия v в нормальном режиме.

edit-and-execute-command (C-xC-e)

Вызывают редактора на текущую командную строку и выполняют результат как команды оболочки. Bash пытается вызвать $VISUAL, $EDITOR и emacs как редактор, в том порядке.

1
ответ дан 21 October 2019 в 10:44

После нажатия Вводят и получил сообщение об ошибке, можно просто возвратиться в истории:

Просто нажимают в † ‘, вводят Вашу клавиатуру для фиксации опечатки. Если Вы нажимаете в †‘ вводят, терминал покажет Вам эту строку:

for i in {1..100..4}; do echo "august"; touch august $i+$2; mkdir;

Исправляют введенный с опечаткой материал приблизительно touch august $i+$2 и добавляют done в конце команды.

Затем совершает нападки , Вводят ключ. Это должно решить Вашу проблему.

1
ответ дан 21 October 2019 в 10:44

Это - то, что работало на меня.

CTRL + C от тока command. Затем нажмите . Теперь можно отредактировать, какой бы ни строка Вы хотите путем перемещения с arrow buttons - или .

Удачи...

0
ответ дан 21 October 2019 в 10:44

Другие вопросы по тегам:

Похожие вопросы: