GNU/Linux >> Belajar Linux >  >> Linux

Manakah paket yang lebih standar, getopt atau getopts (dengan huruf s)?

which adalah alat yang salah. getopts biasanya juga builtin:

Sejak getopts mempengaruhi 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

  1. Utilitas eksternal
  2. Tidak dapat menangani string argumen kosong atau argumen dengan spasi kosong tersemat dalam versi tradisional

getopts Pro

  1. Berfungsi di semua shell POSIX dan portabel
  2. Bekerja dengan baik dengan -a -b serta -ab

Linux
  1. Menyesuaikan shell Bash

  2. Penerjemah Shell mana yang Menjalankan Skrip Tanpa Shebang?

  3. Manakah Parameter/variabel Khusus Shell (bash)?

  1. Gartner Rings di Tahun Baru dengan Prakiraan Teknologi 2015

  2. Tidak dapat mengganti nama file yang namanya dimulai dengan tanda hubung

  3. du -h dengan lebih banyak tempat desimal

  1. Lakukan matematika di shell Linux dengan GNU bc

  2. Menavigasi shell Bash dengan pushd dan popd

  3. Klarifikasi tentang perilaku skrip shell bersama dengan pipa