Таинственный > подскажите от пропущенного правого апострофа

Если я наберу, например,

grep 'needle
>

, меня отправят в таинственную подсказку >, из которой ctrl - C (или перезапускаем терминал), похоже, единственный выход.

  1. Что это за подсказка?
  2. Почему она не завершается, когда я ввожу ctrl - Z ?
  3. Почему он не предназначен для обнаружения попавших в ловушку новичков? Конечно, может быть, в каком-то нелепо надуманном краевом случае была бы причина открыть это приглашение >, а затем ввести что-то вроде "quit\nexit\nhelp\nCTRL-Z\nlogout\n", но если пользователь начинает вводить эти вещи, Ubuntu должен как минимум выдать полезное ответное сообщение (например, , «Вы пытаетесь выйти из этого приглашения? Если это так, используйте CTRL - C . Если нет, игнорируйте это сообщение.»), Что не мешало бы чему-либо странному цель служит подсказке.
2
задан 23 October 2013 в 16:32

3 ответа

Это потому, что вы открыли кавычку (" или '), поэтому оболочка предполагает, что команда продолжается, что обозначено этим символом >. Таким образом, до закрывающей кавычки вы получите приглашение > для завершения запущенной команды.

Это когда вы хотите отобразить что-то с новой строкой, например:

user@host:~$ echo "this
> is a text
> with multiple
> newlines"

выводит:

this
is a text
with multiple
newlines

Чтобы прервать, вы также можете нажать Ctrl < /kbd>+c.

0
ответ дан 23 October 2013 в 16:32

Подсказка - это просто стандартный ввод. «символ интерпретируется как« начало строки », поэтому он исключает закрытие». когда вы нажимаете клавишу возврата до закрытия, это интерпретируется как перевод строки. Вы можете продолжать писать то, что вы хотите. когда вы набираете '' и нажимаете ввод, он получает всю написанную вами строку

0
ответ дан 23 October 2013 в 16:32

В этом нет ничего загадочного. Это приглашение (>) подсказывает вам, что оболочка ожидает вторую кавычку ' и имя файла для завершения вашей команды. Если вы хотите найти 'needle, используйте:

grep \'needle filename

И Control + Z используется для приостановки работы, но вы не любая работа может быть начата только после ввода grep 'needle.

И, в-третьих, я бы сказал, что это будет звучать смешно для пользователей, которые действительно работают с терминалом. Плюс: как, по вашему мнению, терминал может обнаружить, новичок или нет? А что, если кто-то действительно хочет ввести эти строки: «выйти, выйти, помочь, выйти из системы»?

См. Также:

0
ответ дан 23 October 2013 в 16:32

Другие вопросы по тегам:

Похожие вопросы: