which adalah alat yang salah. getopts biasanya juga builtin:
Sejak
getoptsmempengaruhi lingkungan eksekusi shell saat ini, umumnya disediakan sebagai built-in reguler shell.
~ for sh in dash ksh bash zsh; do "$sh" -c 'printf "%s in %s\n" "$(type getopts)" "$0"'; done
getopts is a shell builtin in dash
getopts is a shell builtin in ksh
getopts is a shell builtin in bash
getopts is a shell builtin in zsh
Jika Anda menggunakan skrip shell, Anda dapat dengan aman bergantung pada getopts . Mungkin ada alasan lain untuk mendukung salah satunya, tetapi getopts adalah standar .
Lihat juga:Mengapa tidak menggunakan "yang mana"? Lalu apa yang harus digunakan?
Saya juga lebih suka getopts lebih dari getopt untuk alasan berikut:
getopt Kontra
- Utilitas eksternal
- Tidak dapat menangani string argumen kosong atau argumen dengan spasi kosong tersemat dalam versi tradisional
getopts Pro
- Berfungsi di semua shell POSIX dan portabel
- Bekerja dengan baik dengan
-a -bserta-ab