Терминал принимает не только однострочный код. На самом деле, вы можете написать код (поскольку bash-скриптинг является языком программирования) в несколько строк.
Например, если вы напишите:
while true; do <enter>
он покажет точно то же, >
что показал и ваш случай. Это позволяет вводить больше команд. Теперь, если вы введете:
echo "Cake is a lie" <enter>
sleep 1 <enter>
done <enter>
он запустит ваш код (который в данном случае представляет собой просто цикл while, который выводит строку каждую 1 секунду). Это позволяет создавать небольшие программы без необходимости писать их в однострочный код, например так:
while true; do echo "Cake is a lie"; sleep 1; done
что, в данном случае, это не такая проблема, но может быть и в других случаях (с большим количеством кода, который будет написан).
Таким образом, он обычно используется для написания нескольких строк кода. В вашем случае оболочка распознает, что '
внутри вашего кода нет четного числа , и это не может работать ни в коем случае (то же самое относится и к "
). Итак, это позволит вам написать больше кода, чтобы завершить то, что вы оставили.
Например, если вы даете в качестве команды:
echo "Cake is a <enter>
тогда это позволит вам продолжить. И действительно, вы можете:
lie" <enter>
Это будет нормально выводить:
Cake is a
lie