To, o co pytasz, nie ma większego sensu.
Słowo kluczowe oznacza, że jest to słowo, które jest częścią składni powłoki. Są one rozpoznawane przez tokenizację. Przywołanie ich wystarczy, aby powłoka przestała rozpoznawać.
Możliwe jest jednak aliasowanie słowa kluczowego w większości powłok. Tak więc aliasy mają pierwszeństwo przed słowami kluczowymi (w efekcie są wcześnie rozwijane, a po nich jest więcej tokenizacji, w której można mieć więcej aliasów, słów kluczowych) ...
aliasy (z wyjątkiem aliasów zsh zdefiniowanych za pomocą alias -gsą rozwijane tylko w pozycji polecenia), więc zazwyczaj nie w builtin the-alias.
funkcje mają pierwszeństwo przed wbudowanymi, a wbudowane przed zewnętrznymi poleceniami (a następnie $PATHdecydują, którego z nich użyć).
Możesz wymusić wbudowane za pomocą:
builtin the-cmd and its args
(choć należy zauważyć, że nie jest to standardowe polecenie).
Możesz wyłączyć aliasy poprzez ich cytowanie (choć cytowana wersja może być również aliasowana w niektórych powłokach).
Na przykład (tutaj składnia zsh) w:
'while'() echo function while
alias 'while=echo alias while'
Pisanie while truefaktycznie wyszedłoby na jaw alias while truei nie byłoby możliwości użycia whilesłowa kluczowego, ponieważ cytowanie go wyłączyłoby zarówno alias, jak i słowo kluczowe.
Wywołalibyśmy tę whilefunkcję na przykład:
'whi'le whatever
Jeśli whilebyłby wbudowany (ale oczywiście nie byłby w tych powłokach, które mają whilesłowo kluczowe), napisałbyś to:
builtin while whatever
Aby wywołać whilepolecenie, napiszesz:
env while whatever
lub w zsh(gdy nie ma shemulacji):
command while whatever
(w innych powłokach commandzapobiega tylko funkcjom, nie wbudowanym)
Lub
/full/path/to/while whatever
Oczywiście nic nie powstrzymuje cię przed robieniem jeszcze głupszych rzeczy, takich jak:
alias 'while=while "w"hile; do'
"while"() { while "whi"le; done; }
Które przynajmniej w zsh jest poprawne (ale głupie).
commandpomija wyszukiwanie funkcji, ale żaden z nich nie określa, który z pozostałych synonimów zostanie użyty. Szukam sposobu, aby określić, aby wykonać tylko określony synonim.