Saya baru saja mencatat ini di bash 4.3; nomor versi persisnya adalah 4.3.42(1)-release (x86-redhat-linux-gnu).
$ ..
$ ...
$ ....
$ .....
Mengapa "perintah tidak ditemukan" tidak diminta?
$ ...
$ echo $?
$ 127
Saya memeriksa $PATH
dan alias
tidak ada; Pria itu juga tidak membantu.
Bash berjalan di Fedora Linux, tapi saya pikir itu tidak terkait dengan OS.
EDIT
Saya baru saja mencatat ini sama untuk setiap perintah titik awal
.za
.zaza
..za
..zaza
Jawaban yang Diterima:
Ini disebabkan oleh penanganan command-not-found di Fedora.
Menjalankan perintah yang tidak dikenal (termasuk ...
dll. jika tidak ada alias yang cocok) menyebabkan command_not_found_handle
untuk dijalankan dengan perintah yang hilang sebagai parameter (lihat /etc/profile.d/PackageKit.sh
untuk definisinya). Dalam skenario yang diberikan, pawang kemudian menjalankan /usr/libexec/pk-command-not-found
, sekali lagi dengan perintah yang hilang sebagai parameter. Sebelumnya, pk-command-not-found
abaikan saja perintah apa pun yang dimulai dengan .
:
if (argv[1][0] == '.')
goto out;
dan keluar dengan kode 127.
Perilaku ini diperkenalkan untuk memperbaiki Red Hat #1151185, juga dirujuk di Bash tidak mencetak pesan kesalahan apa pun pada perintah yang tidak ada dimulai dengan titik, dan memiliki bug yang meminta perbaikan (Red Hat #1292531). Ini sebagian besar telah diperbaiki di FC 27 dengan pembaruan, sejak PackageKit 1.1.8 (lihat komit ini):sekarang perintah dengan titik awal yang diproses, hanya .
dan ..
diabaikan.