Добре, коли я запускаю певні команди неправильно, (неправильно написані тощо), термінал виводить так: >
замість computername:workingfolder username$
, а коли я набираю вводити, йде так:
>
>
>
Це було б, якби я натиснув Enter 3 рази.
Добре, коли я запускаю певні команди неправильно, (неправильно написані тощо), термінал виводить так: >
замість computername:workingfolder username$
, а коли я набираю вводити, йде так:
>
>
>
Це було б, якби я натиснув Enter 3 рази.
Відповіді:
>
є запитом продовження за замовчуванням. Це те, що ви побачите, якщо те, що ви вводили раніше, має незбалансовані лапки.
Як приклад, введіть одну команду в командному рядку з наступними кількома enter
клавішами:
$ '
>
>
>
Підказки щодо продовження з’являться, поки ви не зробите це
(a) завершіть команду із закриттям лапки
або
(b) введіть Ctrl+, Dщоб закінчити введення, після чого оболонка відповість повідомленням про помилку щодо незбалансованих лапок,
або
(c) введіть Ctrl+, Cякий скасує команду, яку ви вводили.
Колись вам може захотіти ввести рядок, який містить вбудовані нові рядки. Це можна зробити так:
$ paragraph='first line
> second line
> third line
> end'
Тепер, коли ми відображаємо цю змінну оболонки, ви бачите, що підказки зникли, але нові рядки збереглися:
$ echo "$paragraph"
first line
second line
third line
end
Це станеться, якщо у вас в команді є незакрита цитата. Це щось на кшталт:
$ echo "test here
>
>
...
Ви можете вийти з цього режиму, закривши цитату (написати "
або '
або будь-яку відкриту пропозицію). Це також може бути блок з обмеженими дужками, частково повний for-do
або while-do
цикл, або певні інші конструкції. Ви також можете натиснути, Ctrl-Cщоб скасувати цю команду (потім натисніть, Upщоб переглянути її).
Іноді це може статися без явної відсутньої цитати, коли параметри або розширення історії відбуваються там, де ви їх не очікували.
Значення >
- це ваше PS2
("вторинне запит") значення. Ви можете змінити це на щось інше, щоб нагадати, що сталося:
PS2="Unclosed >"
у вашому .bashrc
зробить це друком Unclosed >
на початку кожного рядка.
Окрім інших відповідей, ви також отримуєте підказку продовження, коли ви вводите a \
як останній символ у рядку.
Відповідь полягає в цій виразній згадці в Довідковому посібнику Баша :
5.1 Змінні оболонки Борна
[...]
PS1
: Первинний рядок підказок. Значення за замовчуванням - "\s-\v\$
". Див. Розділ Друк підказки , на екрані відображається повний перелік послідовностей втечі, розширених ранішеPS1
.PS2
: Вторинна рядок підказок. Значення за замовчуванням - ">
".
… Далі :
6.3.3 Інтерактивна поведінка оболонки
- Bash розширюється та відображається
PS1
перед читанням першого рядка команди, а також розгортається та відображаєтьсяPS2
перед читанням другого та наступних рядків багаторядкової команди.
Отже, >
підказка з'являється, якщо ви натиснете, Enterі Bash визначить, що команда неповна. Це може бути тому, що:
\
, який трактується як продовження рядка .$()
, ()
, ``
.for
циклу, while
циклу чи a case
.Якщо ви бачите вторинну підказку через ненавмисну помилку введення, натисніть, ControlCщоб повернутися до первинного запиту.