что означает «ls» в Linux?

13

Я случайно набрал текст ls'и получил интерактивный интерфейс: > что это?

Я пробовал поиск в интернете, ничего не нашел.

Андерс Линд
источник

Ответы:

34

Такое поведение является дистро-агностиком. Вы открыли кавычку, оболочка отображает $PS2глобальную переменную ( $PS2есть >в вашем выводе), а вторая кавычка отсутствует.

Вместо этого вы можете изменить PS2 на то, что вы хотите:

Пример: export PS2=">>>"

Значение $ PS2 выводится (после раскрытия) в качестве вторичного приглашения для получения дополнительных данных, когда bash работает в интерактивном режиме. Смотри man bash, под ЗАДАНИЕМ.

Жиль Квено
источник
2
У вас есть хорошие глаза, чтобы заметить случайные одиночные кавычки.
1
Дополнительная информация: Чтобы выйти, просто введите другую одинарную кавычку или нажмите Ctrl-C.
октябрь
Не совсем чтение стандартного ввода; вы можете ввести многострочную кавычку в скрипт или что-то в этом роде; но дополнительная подсказка отображается в интерактивном сеансе, когда вы вводите новую строку внутри строки в кавычках, незавершенный цикл и т. д.
tripleee
1
Лучше использовать ctrl-d вместо ctrl-c в качестве EOF (конец файла)
Жиль Квено
спасибо, кстати, что такое PS2?
Андерс Линд
5
-bash-4.1$ ls'
>

это означает, что вы открыли длинную строку с помощью 'и не закрыли ее, поэтому bash ожидает строку (аргумент), оканчивающуюся на'

Используйте lsбез каких-либо 'в конце.

Матеуш
источник
0

«PS» обозначает (вероятно) «строку подсказки». PS1 - это то, что оболочка будет отображать как приглашение командной строки вашего процесса оболочки. PS2 отображается, когда для завершения команды требуется дополнительный ввод (строка без кавычек, чтение из стандартного ввода и т. Д.). man bashзатем найдите PS1 или PS2 ( /PS[12]<CR>)

AQn
источник