t\imeабо \cd(або "tim"eабо 'cd'або ${-##*}timeабо ${-+time}та будь-яка інша комбінація цитування та розширень, про яку ви могли б подумати, що врешті-решт може вирішитись timeабо cd), це: інший спосіб написання cdта time.
Однак це врешті-решт вирішиться до cdчи timeпізнішого розбору та інтерпретації синтаксису оболонки. Зокрема, це відбувається задовго після того, як відбудеться розпізнавання ключових слів оболонки та заміна псевдоніму .
Отже, на той час, коли оболонка шукає ключові слова на своїй мові, вона не розпізнається ti\meяк timeключове слово оболонки. Отже:
ti\me echo test
оболонка буде розпізнана як проста команда на відміну від timeключового слова, за яким просте команда.
Тоді цитування в ti\meоброблятиметься (тут на зворотному косому котирується mсимвол, котрий не потребує цитування, символ цитування видаляється, ви отримуєте time), і time команда буде шукатись, як і будь-які інші команди (у списку вбудованих , функції та виконувані файли в $PATH. Швидше за все, це буде /bin/timeтут)
Бо в мові оболонки cdнемає cdключового слова, а лише cdвбудована команда (яка має перевагу над вашою /usr/bin/cd). Однак, якщо ви визначите псевдонім для cd(like alias cd=pushd), знову ж. Оскільки заміна псевдоніму робиться дуже рано, перед тим, як вилучити цитати, якщо у вас є псевдонім для, cdа не один \cd(зауважте, що не багато оболонок дозволяють псевдоніми з косою косою рисою), то написавши:
\cd dir
ви переконайтеся, що ваш cdпсевдонім не замінений.
Коротше кажучи, з посиланням на ім'я команди або яку - або його частину НЕ заважає йому бути розглядаються в якості ключового слова оболонки (ключових слів бути речі , як while, for, if, {... timeце ключове слово в деяких тільки оболонках), і обходять псевдонім , ви можете мати для нього .
Однак це не примушує цю команду вирішувати виконуваний файл в $PATH, команда все ще шукається першою серед функцій (якими можна обійтися, виконуючи завдання command time cmd...) та вбудованими (якими ви можете займатися env time cmd..., виконуючи , хоча я не знаю оболонка, яка має вбудовану timeкоманду).
Зверніть увагу , що квотування може також впливати на поведінку спеціальних вбудованих команд в typeset/ declare/ export/ local... сім'ї в деяких оболонках. Див. Чи потрібні лапки для призначення місцевих змінних? для деталей.