Ответ JohnC уже объясняет обратную черту. Но то, что вас также интересует, так это >
быстрое. Это приглашение продолжения, и оно запускается не только обратным трюком, но и всегда, когда ваша оболочка четко знает, что вы не завершили ввод команды. Самый простой пример - поместить явное продолжение строки \
в конец строки ввода (что помогает разбить длинный ввод):
$ echo \
> hallo
Обратите внимание, что так же, как PS1
контролирует внешний вид командной строки, вы также PS2
можете изменить приглашение продолжения, например
$ export PS2="(cont.) "
$ echo \
(cont.) hallo
Есть много причин для продолжения. Один обратный удар не завершен, но вы также можете ввести что-то вроде
ls -l `which cp`
в одной строке (примечание: рекомендуется использовать $(
и )
вместо этого, поскольку круглые скобки указывают, где начинается и заканчивается расширение, в то время как одиночные метки в обратном порядке усложняют поиск того, где чего-то не хватает. И вложение ...). Другие возможные причины продолжения подсказки:
- пропущенный
done
после while
илиfor
- пропавший
fi
послеif
- пропавший
esac
послеcase
- отсутствует закрывающая скобка, например, в подоболочках
(cd $HOME; cat .bashrc)
- пропущенная команда после конвейерной обработки,
|
а также условного выполнения ||
и &&
(не &
смотря на то, что это просто делает команду запущенной в фоновом режиме)
- отсутствует заключительная цитата (
'
или "
)
Любопытно, что пропущенная фигурная скобка }
после раскрытия переменной ${
также вызывает приглашение продолжения, но завершится неудачей из-за вставленного пробела:
$ echo ${
> PS2}
bash: ${
PS2}: bad substitution