私が書くコードのほとんどはPHPにあります。最近、シェルスクリプトの学習を始めました。私が出会ったほとんどのリソースとチュートリアルは、Bashに固有のものです。バシズムについて警告する人もいれば、警告しない人もいます。私はこことStack Overflowについてたくさん読んでいます。
答えがbashismsを使用するときは常に、誰かが次のようにコメントすることは避けられません。
<bashismをここに挿入>は使用しないでください。ポータブルではありません。
これは、質問にがタグ付けされている場合でも発生しbashます。私にとって、それはPHP 4で使用できないため、PHP 5の新しいコードを使用すべきではないことをPHPプログラマーに伝えるようなものです。 Windowsで。
PHPで作成する場合、最小要件を選択し、前方互換コードを作成します。下位互換性について心配する必要はありません。
#!/bin/bash
シバンとして使用する場合、なぜバシズムを使用してはいけないのですか?私は、一部の人々がちょうどそれのためにバシズムをバッシングすること(意図されたしゃれ)を好むという印象を受け始めています。
多くの場合bash
、shell
bashは多くのシステムでデフォルトのシェルであるという事実により、人々は頻繁に使用し、交換可能です。したがって、コードがバシズムを使用していることを警告するコメントを追加することは理解できますが、それらを使用することは間違っているという意味を理解していません。
明らかに、私が個人的に使用するためだけにスクリプトを書いている場合、私は好きな言語でそれを書くことができます。しかし、私が書いたコードの一部は他の人にとっても役立つと思いたいです。
投稿する前に質問の答えを探してみました。移植性をテストする方法に関する多くの情報を見つけましたが、そうすることが重要な場合については何も見つかりませんでした。
それで、いつ移植可能なスクリプトを書くことが重要ですか?
例えば、
- どんな種類のスクリプトを可能な限り移植可能にするべきですか?
- Bashがインストールされていないシステムはどのくらい一般的ですか?
- システムにBashがインストールされている場合、GNUバージョンのfindおよびその他のユーティリティもありますか?
bash
タグだけがある場合、誰かが「それはバシズムであり、移植性がない」とコメントします。タグ付けされた質問に答えるときC
、それが移植可能かどうかは気にしませJava
ん。
bash
GNU固有の拡張機能が何らかのユーティリティに使用されていることを指摘するように(質問がLinuxとしてタグ付けされていたとしても)、それが特定の機能であり、移植性がないことを常に指摘するのは良いことだと思います。「これはバシズムであり、決して使用すべきではない」と言う人を見たことはありません。