Это возвращаемый символ в тексте, который вы копируете, который вызывает автоматическое выполнение.
Давайте возьмем другой пример, скопируем все эти строки сразу и вставим их в ваш терминал:
echo "Hello";
echo "World";
Если вы посмотрите в свой терминал, вы не увидите этого:
$ echo "Hello";
echo "World";
Вы увидите это (также может быть строка с надписью World
):
$ echo "Hello";
Hello
$ echo "World";
Вместо ожидания вставки всего ввода выполняется первая строка (и по той же причине вторая строка может или не может сделать это также). Это потому, что RETURN
между двумя строками есть символ.
Когда вы нажимаете ENTER
клавишу на клавиатуре, все, что вы делаете, это отправляете символ со значением ASCII 13
. Этот символ немедленно обнаруживается вашим терминалом и знает, что у него есть специальные инструкции для выполнения того, что вы уже набрали.
Когда RETURN
символ хранится на вашем компьютере или печатается на экране, он похож на любую другую букву алфавита, цифру или символ. Этот символ может быть удален с помощью возврата или скопирован в буфер обмена, как и любой другой обычный символ.
Единственное отличие состоит в том, что, когда ваш браузер видит символ, он знает, что вместо печати видимого символа он должен обрабатывать его по-другому, и у него есть специальные инструкции для перемещения следующего набора текста на следующую строку. По этой причине RETURN
символ и SPACE
символ (ascii 32
), наряду с несколькими другими редко используемыми символами, известны как «непечатные символы».
Иногда, когда вы копируете текст с веб-сайта, трудно скопировать только текст, а не возврат в конце (и часто это усложняется стилем страницы).
Время эксперимента!
Ниже вы найдете две команды, которые проиллюстрируют проблему и на которых вы можете «попрактиковаться». Начните курсор прямо перед echo
и тяните, пока выделение не будет прямо перед стрелкой:
echo "Wait for my signal...";<- End cursor here right after the semicolon
А теперь попробуйте вторую команду. Начните курсор прямо перед этим echo
и тяните его вниз, пока курсор не окажется на второй строке, но находится прямо перед <-
стрелкой. Скопируйте его, а затем вставьте в свой терминал:
echo 'Go go go!';
<- End cursor here right before the arrow
В зависимости от вашего браузера может даже не быть видно, что выбранный вами текст занимает две строки. Но когда вы вставите его в терминал, вы обнаружите, что он выполняет строку, потому что он нашел RETURN
символ в скопированном тексте.
{
(w / space) перед вставкой, а затем завершите}
. Он не влияет на работу вставленных команд, но не позволяет оболочке выполнять его, пока вы не закроете блок. Описано здесь [ gnu.org/software/bash/manual/html_node/Command-Grouping.html]