Saya membaca berikut ini di Panduan Pengguna untuk Z-Shell :
Sinonim untuk 'true' adalah ':'; sering digunakan dalam formulir ini untuk memberikan argumen yang memiliki efek samping tetapi yang tidak boleh digunakan - sesuatu seperti
: ${param:=value}
yang merupakan ungkapan umum dalam semua turunan shell Bourne. Dalam ekspansi parameter,
$param
diberikan nilai nilai jika kosong sebelumnya, dan dibiarkan sendiri sebaliknya. Karena itu adalah satu-satunya alasan ekspansi parameter, Anda menggunakan:
untuk mengabaikan argumen. Sebenarnya, shell dengan riang membangun baris perintah - titik dua, diikuti oleh apa pun nilainya$param
, apakah penugasan terjadi atau tidak - kemudian menjalankan perintah; Kebetulan bahwa ':' tidak memperhatikan argumen yang diberikan.
tapi saya tidak mengerti. Saya mengerti :
artinya true
, tetapi ada dua titik dua dalam ekspresi. Sebagai pertanyaan kecil, mengapa idiom ini banyak digunakan dalam semua turunan shell Bourne? Apa tujuannya?
Catatan: Saya tertarik dengan apa yang dilakukan idiom ini di bash dan di zsh .
Terima kasih
zsh
ataubash
?