Що таке підказка у відсотках?


16

Під час перегляду відео я побачив таке:

% more tinyUF.txt
10
4 3
3 8
6 5

Що це за %знак перед moreкомандою?


2
export PS1=%??
Роман Ґраф

@ RomanGräf, що це?
Максим Корецький

1
Ви можете змінити звичайний $знак, використовуючи, export PS1=...де ...відбувається його заміна.
Роман Ґраф

@ RomanGräf, бачу, дякую за пропозицію
Максим Корецький

@ Роман Груф: Насправді ви можете зробити набагато більше за допомогою підказки, ніж просто змінити персонаж. Шахта включає назву машини (оскільки я часто маю вікна xterm в інших машинах) та кілька останніх каталогів у поточному шляху. А якщо я корінь, він стає яскраво-червоним.
jamesqf

Відповіді:


29

Це підказка оболонки, а точніше, це первинний підказки оболонки ( їх декілька ). Це спосіб оболонки сказати " вперед, я готовий до введення зараз ".

%Запрошення поширене в csh-Типи оболонок в той час як sh-shells (як bashі ksh93) зазвичай використовує в $якості підказки.

Запрошення, як правило, змінюється #для кореневого користувача, оскільки досить потужний користувач повинен нагадувати про цю потужність за допомогою альтернативного підказки (як стверджує стандарт POSIX).

Первинний підказки в shоболонках типу визначаються значенням змінної оболонки PS1.


Короткий зміст коментарів нижче, із доповненнями:

#Символ корінь швидкого (використовується як shі cshоболонками) , трапляється, збігається з коментарем характером загальної оболонки. Копіювання та вставлення команди як root призведе до того, що вставлена ​​команда буде непрацездатною, якщо також буде скопійовано запит оболонки. Зауважте, що він #був прийнятий як кореневий рядок до того, як оболонка мала конвенцію про коментарі (довідка: електронний лист від Дуга Макілроя ).

esІ rcпанцири Plan 9 використовує ;символ в якості значення за замовчуванням рядка. Наслідком цього є те, що копіювання та вставлення команди, включаючи підказку, все одно означатиме, що вставлена ​​команда є дійсною (і вона буде виконуватися).

Способом включення одного користувача у користувальницький, але все-таки підкажуваний для копіювання підказки оболонки було б використовувати : something ;, де, наприклад, somethingпоточний каталог, ім’я хоста або час.


2
Також в zsh(оболонці в стилі Борна, але з великою кількістю функцій від tcsh). Зауважте, що оболонки, подібні до Борна, і схожі на csh, зазвичай використовують #для користувачів uid 0.
Stéphane Chazelas

1
Також зауважте, що там rcвикористовуються оболонки-подібні ;(можна скопіювати та вставити повний рядок, і це дійсний код оболонки, та ж ідея, що і кореневий #запит - коментар).
Стефан Шазелас

2
Дуже важливим вибором # для root є те, що якщо ви скопіюєте команду, включаючи її, ви не заподіюватимете збитків (як # починає коментар, так і прокоментуйте вашу команду (ну, її перший рядок)). Деякі люди використовують ">", і якщо ви також скопіюєте його, він може клобірувати (повністю порожнє) двійкові файли, якщо команда має повний або відносний шлях або якщо ви знаходитесь у правильному каталозі (і маєте достатньо прав, наприклад, якщо ви корінь). Я бачив, як це відбувається.
Олів'є Дулак

1
@ StéphaneChazelas: Невже конвенція #-для-root не зародилася задовго до того, як термінали, на яких легко і легко вставити всю лінію, стали загальними?
hmakholm залишив Моніку

@HenningMakholm, так. Вона виникла ще до того, як csh представлений # як керівник коментаря. І все-таки це правда, що #...рядки - це коментарі, коли копіюються вставлені, навіть якщо це не було наміром. Я не знаю, чи було це задум ;у rcбудь-якому, хоча я зауважую, що це є зручним наслідком.
Стефан Шазелас
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.