O shell em execução no terminal recebe o script que você está colando na entrada padrão e o próprio script lê a partir da entrada padrão. Há um conflito aqui: seu script acabará lendo um pouco de si mesmo.
Se você não receber um prompt do sudo, o que acontece é:
- O shell lê linhas inteiras até que tenha um comando completo. A primeira linha inicia um documento aqui, então o shell continua lendo o documento aqui.
- Quando o shell atinge a primeira linha
EOF, ele tem um comando completo, portanto, ele é executado. -
sudo synce 'echo'… 'executado. -
read passé executado. Ele lê uma linha de entrada, que ésudo bash -c …. Isso definepass. -
sudo syncé executado. - O shell concluiu a execução dos comandos que leu, por isso lê a próxima linha de entrada que é
[Unit].
Não cole o código shell multilinha complexo em um terminal. Em vez disso, se você realmente precisar executar o conteúdo da área de transferência como um script de shell, use xsel ou xclip em X11 ou pbpaste no OSX.
eval "'xsel'"
eval "'xclip'"
eval "'pbpaste'"
Mas, na verdade, o que você deve fazer é colocar isso em um script, com #!/bin/sh no topo.