Вставьте команду bash, но убедитесь, что она не запускается - PullRequest
0 голосов
/ 15 июня 2019

Иногда, когда вы ctrl - v с bash, он запускает команду, даже если вы еще не собирались ее запускать - есть ли способ вставить команду вОболочка / терминал bash, проверяющая, что вы на самом деле не выполняете ни одну из команд (ы)?

Если бы вы могли программно установить то, что было на приглашении терминала, вы могли бы сделать это с помощью bash на MacOS:

export BASH_PROMPT="$(pbpaste)"

, который связан с другим моим вопросом, который я только что задал: Как изменить значение в приглашении

Ответы [ 3 ]

1 голос
/ 15 июня 2019

Используйте ^ X ^ E или Ctrl + X Ctrl + E в bash, чтобы открыть свой $ EDITOR для ввода команды.

Вставьте и / или отредактируйте столько строк, сколько хотите, столько строк, сколько хотите. Когда вы закончите, сохранитесь и выйдите, и bash запустит его.

(В режиме vi ярлык v)

1 голос
/ 15 июня 2019

Существует переменная Readline:

enable-bracketed-paste
Если установлено значение On, Readline настроит терминал вспособ, позволяющий вставлять каждую вставку в буфер редактирования в виде одной строки символов, а не обрабатывать каждый символ, как если бы он был прочитан с клавиатуры.Это может предотвратить интерпретацию вставленных символов как команд редактирования.По умолчанию off.

Чтобы включить это, вставьте что-то вроде

set enable-bracketed-paste on

в ваш ~/.inputrc.

Это было введено в Bash4.4 / Readline 7.0.

0 голосов
/ 15 июня 2019

Да. Вы должны быть осторожны при копировании строки. Если вы копируете в конец последнего символа, то вы не будете копировать символ новой строки, если при копировании вы немного пройдете последний символ или перейдете на следующую строку, вы включите символ новой строки.

Если вы добавите символ новой строки в копию, то при вставке это будет похоже на нажатие клавиши ввода. Иначе не будет.

Я понимаю, что это не отвечает на ваш вопрос, так как вы спрашивали о вставке, а не копировании. Я думаю, что ответ на этот вопрос - нет, вы не можете вставить таким способом, который не запускает команду, вы должны сделать копию (^ C) прямо с самого начала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...