Apa yang Anda tanyakan sebenarnya tidak masuk akal.
kata kunci berarti kata yang merupakan bagian dari sintaksis shell. Itu dikenali melalui tokenising. Mengutipnya sudah cukup bagi shell untuk berhenti mengenali.
Dimungkinkan untuk alias kata kunci di sebagian besar shell. Jadi, alias lebih diutamakan daripada kata kunci (pada dasarnya kata tersebut diperluas lebih awal, dan ada lebih banyak tokenising setelah itu di mana Anda dapat memiliki lebih banyak alias, kata kunci) ...
alias (dengan pengecualian alias zsh yang didefinisikan dengan alias -g
hanya diperluas dalam posisi perintah), jadi biasanya tidak dalam builtin the-alias
.
fungsi memiliki prioritas di atas builtin, dan builtin di atas perintah eksternal (dan kemudian $PATH
memutuskan mana yang akan digunakan).
Anda dapat memaksa builtin dengan:
builtin the-cmd and its args
(meskipun harus dicatat itu bukan perintah standar).
Anda dapat menonaktifkan alias dengan mengutipnya (meskipun versi yang dikutip juga bisa dibuat dalam beberapa shell).
Jadi, misalnya (di sini sintaks zsh), di:
'while'() echo function while
alias 'while=echo alias while'
Menulis while true
sebenarnya akan menghasilkan alias while true
, dan tidak akan ada cara untuk menggunakan while
kata kunci karena mengutip itu akan menonaktifkan alias dan kata kunci.
Anda akan memanggil while
fungsi dengan misalnya:
'whi'le whatever
Jika ada while
builtin (tapi tentu saja mereka tidak akan ada di shell yang memiliki while
kata kunci), Anda akan menulisnya:
builtin while whatever
Dan untuk memanggil while
perintah, Anda akan menulis:
env while whatever
atau dalam zsh
(saat tidak dalam sh
persaingan):
command while whatever
(di shell lain, command
hanya mencegah fungsi, bukan bawaan)
Atau
/full/path/to/while whatever
Tentu saja, tidak ada yang menghentikan Anda dari melakukan hal-hal yang lebih konyol seperti:
alias 'while=while "w"hile; do'
"while"() { while "whi"le; done; }
Yang, setidaknya dalam zsh valid (tapi bodoh).
command
menekan pencarian fungsi, tetapi tak satu pun dari ini menentukan mana dari sinonim yang tersisa akan digunakan. Saya mencari cara untuk menentukan untuk mengeksekusi hanya sinonim tertentu .