Apa itu perintah garis bawah?

10

Ketika saya tab tab _di terminal, Bash menyarankan 206 kemungkinan. Saya mencoba menjalankan salah satu dari mereka _git_rmtetapi tidak ada yang terjadi, apa yang mereka?

Ini screenshotnya:

masukkan deskripsi gambar di sini

seri
sumber
11
type _git_rmmungkin akan memberi tahu Anda bahwa itu adalah fungsi. grep -R '_git_rm' /etc/bash_completion.d/mungkin akan menemukannya. Fungsi-fungsi itu biasanya yang menyediakan berbagai daftar bashpenyelesaian untuk diselesaikan.
manatwork
@manatwork silakan posting itu sebagai jawaban.
derobert
@derobert, saya hanya bermaksud memberikan petunjuk singkat sehingga pemilik pertanyaan mendapatkan sesuatu sebelum jawaban pakar diposting ~ 7 jam kemudian.
manatwork
@manatwork Jawabannya cukup bagi saya ... Saya dapat menjelajahi lebih banyak sendiri: D Jika Anda tidak keberatan, saya akan menerima anwser Gilles meskipun saya pikir saya harus menerima milik Anda ..
menggambar
@draw, jawaban Gilles mungkin didasarkan pada penelitian dan pengalaman, sedangkan jawaban saya didasarkan pada pengamatan tidak disengaja yang dilakukan selama perayapan direktori. Terimalah miliknya.
manatwork

Jawaban:

12

Fungsi-fungsi ini yang namanya dimulai dengan garis bawah adalah bagian dari mesin penyelesaian yang dapat diprogram. Bash mengikuti konvensi zsh di sini, di mana fungsi yang menghasilkan penyelesaian somecommanddipanggil _somecommand, dan jika fungsi tersebut membutuhkan fungsi bantu, mereka dipanggil _somecommand_stuff.

Fungsi penyelesaian ini biasanya tidak berguna atau menimbulkan kesalahan jika Anda memanggilnya secara manual: fungsi tersebut dimaksudkan untuk dipanggil dari mesin penyelesaian.

Ini mengikuti praktik yang cukup luas dalam berbagai bahasa pemrograman untuk menggunakan garis bawah terkemuka untuk menunjukkan bahwa suatu fungsi atau variabel dalam beberapa cara internal ke perpustakaan dan tidak ditujukan untuk pengguna akhir (atau pemrogram akhir).

Gilles 'SANGAT berhenti menjadi jahat'
sumber