私はこんなところから来た「which」を使わないのはなぜですか?それでは何を使うべきですか?そしてhttps://stackoverflow.com/questions/592620/how-to-check-if-a-program-exists-from-a-bash-scriptwhich
私自身は、よく知られているすべての理由でこれに反対することを長い間提案してきました。しかし、それは難しい戦いのように見えます。
人々にこの命令を放棄させるのはなぜそんなに難しいのですかwhich
?
最初に反対と懐疑論に直面した他の多くのPOSIXイノベーションは、時間の経過とともに一般的なU * x仕様の一部になりましたが、これは現場での採用が非常に不安定なイノベーションであるようです。
なぜ人々がこの特定のPOSIXの推奨事項を覚えているのが難しいのかを理解したいと思います。 POSIXの立場がまだ不安定なのではないか(まずtype
、今command
)?それともPOSIX名がcommand
覚えたり内部化するのが難しいからですか? (BashがPOSIX以前にも存在していたかどうか疑問に思うかもしれません。多分command
意味が少し異なるかもしれません)。which
ベストアンサー1
command -v
直接的な交換ではないからですwhich
。
https://github.com/koalaman/shellcheck/issues/1162
which
- フルパスを出力し、
- シェルの組み込みや機能を無視し、
- すべて存在する場合にのみtrueを返します。
- エイリアスの代わりに出力する
- ダッシュとは異なり
type -p
- ほとんどのコンピュータは約5種類のBash / Linuxバージョンを使用しているため、互換性のない実装はほとんどありません。