t\imelub \cd(lub "tim"elub 'cd'lub ${-##*}timei ${-+time}i każda inna kombinacja cytatów i rozwinięć, o których można by pomyśleć, ostatecznie rozwiązałaby się na timelub cd), jest: innym sposobem pisania cdi time.
Jednak ostatecznie rozwiązałoby to parsowanie i interpretację składni powłoki cdlub timew późniejszym czasie. W szczególności dzieje się to długo po rozpoznaniu słowa kluczowego powłoki i podstawieniu aliasu .
Tak więc, w tym czasie powłoka szuka słów kluczowych w swoim języku, to nie uznając ti\mejako timesłowo kluczowe powłoki. Więc:
ti\me echo test
będą rozpoznawane przez powłokę jako proste polecenie w przeciwieństwie do timesłowa kluczowego, po którym następuje proste polecenie.
Wówczas cytowanie ti\mezostanie przetworzone (tutaj odwrotny ukośnik cytuje mznak, który i tak nie wymaga cytowania, znak cytowania jest usuwany, otrzymujesz time), a time polecenie byłoby wyszukiwane jak każde inne polecenie (na liście poleceń wbudowanych , funkcje i pliki wykonywalne w $PATH. Najprawdopodobniej będą /bin/timetutaj)
Bo w języku powłoki cdnie ma cdsłowa kluczowego, tylko cdwbudowane polecenie (które ma pierwszeństwo przed twoim /usr/bin/cd). Jeśli jednak zdefiniujesz alias cd(podobny alias cd=pushd), to samo ponownie. Ponieważ podstawianie aliasów odbywa się bardzo wcześnie, przed usunięciem cytatu, jeśli masz alias dla, cda nie jeden dla \cd(zauważ, że niewiele powłok pozwala na aliasy z odwrotnymi ukośnikami), a następnie pisz:
\cd dir
upewniasz się, że Twój cdalias nie jest podstawiony.
W skrócie, podając nazwę polecenia lub jakiejkolwiek jego części uniemożliwia postrzegane jako słowo kluczowe powłoki (słowa kluczowe są takie rzeczy jak while, for, if, {... timejest to słowo kluczowe w niektórych tylko muszli), a omija aliasu może masz dla niego .
Jednak nie zmusza tego polecenia do przetworzenia pliku wykonywalnego $PATH, polecenie jest nadal wyszukiwane najpierw wśród funkcji (które można obejść, wykonując command time cmd...) i wbudowanych (które można obejść, wykonując env time cmd..., chociaż nie wiem o powłoka, która ma wbudowane timepolecenie).
Zauważ, że cytowanie może również wpływać na zachowanie specjalnych wbudowań rodziny typeset/ declare/ export/ local... w niektórych powłokach. Zobacz: Czy do przypisania zmiennych lokalnych potrzebne są oferty? dla szczegółów.