Linux財団標準ユーティリティ一覧含まれていますがgetopts
含まれていませんgetopt
。似ているグループを開くPosix ユーティリティのリスト。
同時に、Wikipediaの標準Unixコマンドのリスト含まれていますがgetopt
含まれていませんgetopts
。同様に、Linux用のWindowsサブシステム(Ubuntuベース、Debianベース)も含まれていますが、getopt
含まれていませんgetopts
。GNU 拡張バージョン)。
balter@spectre:~$ which getopt
/usr/bin/getopt
balter@spectre:~$ getopt -V
getopt from util-linux 2.27.1
balter@spectre:~$ which getopts
balter@spectre:~$
それでは、より標準的なLinuxディストリビューション(Debian、Red Hat、Ubuntu、Fedora、CentOSなど)のいずれかを使用している人にとって最も自信のあるディストリビューションを選択するには、どのようなものを選択する必要がありますか?
メモ:
組み込みと実行ファイルを説明してくれたMichaelとMuruに感謝します。私は偶然見つけました。これbash 組み込み機能がリストされています。
答え1
which
間違ったツールです。getopts
通常やはり組み込み型ですね:
現在、シェル実行環境に影響を与えるため、
getopts
通常はシェルの一般的な組み込みとして提供されます。
~ 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
シェルスクリプトを使用している場合は、それを安全に使用できますgetopts
。その他の理由片側を好むgetopts
が基準。
答え2
また、次の理由でgetopts
これを好みます。getopt
getopt
欠点
- 外部ユーティリティ
- レガシーバージョンでは、空のパラメータ文字列またはスペースを含むパラメータを処理できません。
getopts
利点
- すべてのPOSIXシェルで動作し、移植可能です。
-a -b
次の製品によく合います。-ab