Backslash akan menekan ekspansi alias, yaitu mengeksekusi perintah asli dan memastikan bahwa versi alias tidak berjalan. Skrip tanpa sadar dapat dijalankan dengan ekspansi alias saat sistem telah disetel shopt -s expand_aliases
(khusus BASH) atau jika dijalankan menggunakan source
.
./conda.sh # usually no alias expansion (unless `shopt -s expand_aliases` in BASH)
source ./conda.sh # alias expansion
. ./conda.sh # alias expansion
Beberapa sysadmin suka meletakkan backslash dalam segala hal sebagai tindakan pencegahan terhadap efek samping alias, untuk berjaga-jaga kalau itu tidak sengaja alias di tempat lain dan alias akan diperluas seperti yang dijelaskan sebelumnya. Misalnya, jika sistem telah menetapkan ini di alias dirname='dirname -z'
suatu tempat dan kondisi memungkinkan alias untuk diperluas, maka skrip yang mencoba memanggil dirname sayangnya akan memanggil dirname -z
sebaliknya, yang bukan skrip yang dimaksudkan.
Jika ada kepastian bahwa alias tersebut tidak ada, kami dapat menghapus semua backslash dan itu akan berfungsi dengan baik.
Atau, seseorang dapat menggunakan command
alih-alih versi backslash untuk menekan alias. Jadi, alih-alih \dirname
, seseorang dapat menggunakan command dirname
, yang mungkin terlihat lebih mudah dibaca. (Untuk perintah bawaan seperti cd
, seseorang harus menggunakan builtin
sebagai gantinya). Saya lebih suka ini, karena juga memotong fungsi dengan nama yang sama dan alias.