Meskipun benar bahwa sebuah perintah itu sendiri tidak dapat mematikan globbing, ada kemungkinan bagi pengguna untuk memberi tahu shell Unix agar tidak menggunakan perintah tertentu. Ini biasanya dilakukan dengan mengedit file konfigurasi shell. Dengan asumsi perintah foo
dapat ditemukan di sepanjang jalur perintah, berikut ini perlu ditambahkan ke file konfigurasi yang sesuai:
Untuk cangkang sh, bash, dan ksh:
alias foo='set -f;foo';foo(){ command foo "$@";set +f;}
Untuk csh dan tcsh shell:
alias foo 'set noglob;\foo \!*;unset noglob'
Untuk shell zsh:
alias foo='noglob foo'
Jalur perintah tidak harus digunakan. Katakanlah perintah foo disimpan di direktori ~ / bin, maka di atas akan menjadi:
Untuk cangkang sh, bash, dan ksh:
alias foo='set -f;foo';foo(){ ~/bin/foo "$@";set +f;}
Untuk csh dan tcsh shell:
alias foo 'set noglob;$home/bin/foo \!*;unset noglob'
Untuk shell zsh:
alias foo='noglob ~/bin/foo'
Semua hal di atas telah diuji menggunakan Apple OSX 10.9.2. Catatan: Saat menyalin kode di atas, berhati-hatilah saat menghapus spasi. Mereka mungkin penting.
Memperbarui:
Geira pengguna telah menunjukkan bahwa dalam kasus shell bash
alias foo='set -f;foo';foo(){ ~/bin/foo "$@";set +f;}
bisa diganti dengan
reset_expansion(){ CMD="$1";shift;$CMD "$@";set +f;}
alias foo='set -f;reset_expansion ~/bin/foo'
yang menghilangkan kebutuhan akan fungsi foo.
Beberapa situs web yang digunakan untuk membuat dokumen ini:
pwd
,echo *
hanya*