É o caractere de retorno no texto que você está copiando que está acionando a execução automática.
Vamos dar um exemplo diferente, copiar essas linhas de uma só vez e colá-las no seu terminal:
echo "Hello";
echo "World";
Se você procurar no seu terminal, você não verá isto:
$ echo "Hello";
echo "World";
Você verá isso (também pode haver uma linha dizendo World
):
$ echo "Hello";
Hello
$ echo "World";
Em vez de esperar que toda a entrada seja colada, a primeira linha é executada (e pela mesma razão, a segunda linha também pode ou não fazê-lo). Isso ocorre porque há um caractere RETURN
entre as duas linhas.
Quando você pressiona a tecla ENTER
em seu teclado, tudo o que você está fazendo é enviar o caractere com o valor ASCII de 13
. Esse caractere é detectado imediatamente pelo seu terminal e sabe que tem instruções especiais para executar o que você digitou até agora.
Quando armazenado no computador ou impresso na tela, o caractere RETURN
é igual a qualquer outra letra do alfabeto, número ou símbolo. Esse caractere pode ser excluído com backspace ou copiado para a área de transferência, como qualquer outro caractere regular.
A única diferença é que, quando o navegador vê o caractere, ele sabe que em vez de imprimir um caractere visível, ele deve ser tratado de forma diferente e tem instruções especiais para mover o próximo conjunto de texto para a próxima linha. O caractere RETURN
e o caractere SPACE
(ascii 32
), juntamente com alguns outros caracteres raramente usados, são conhecidos como "caracteres não imprimíveis" por esse motivo.
Às vezes, quando você copia texto de um site, é difícil copiar apenas o texto, e não o retorno no final (e muitas vezes é dificultado pelo estilo na página).
Tempo de experiência!
Abaixo, você encontrará dois comandos que ilustrarão o problema e que você poderá "praticar". Inicie o cursor imediatamente antes de echo
e arraste até o destaque ficar logo antes da seta:
echo "Wait for my signal...";<- End cursor here right after the semicolon
E agora tente o segundo comando. Inicie o cursor imediatamente antes de echo
e arraste para baixo até que o cursor esteja na segunda linha, mas fique bem na frente da seta <-
. Copie e cole no seu terminal:
echo 'Go go go!';
<- End cursor here right before the arrow
Dependendo do seu navegador, talvez nem seja visível que o texto selecionado tenha passado por duas linhas. Mas quando você colá-lo no terminal, você verá que ele executa a linha, porque encontrou um caractere RETURN
no texto copiado.