今日の最高の(ポータブルで保守可能な)シェルスクリプト言語は何ですか?
質問
私はこの質問が親切であることを知っています-過去に始まった「宗教的」戦争であり、正しい答えは1つではないかもしれません。しかし、過去3〜4年間kshとcshを使用し、相互に移植したり、共通のロジックを複数のバージョンに適用したりするという苦痛を経験した後(レガシーコードとして読み取る)、新しいスクリプトを作成している場合は、kshを選択しますが、選択ではなく強制からです。ksh / csh以外のより良いオプションはありますか?また、Unix(Solaris / HP / IBM / FreeBSD)とLinuxの間で移植可能なもの(そして、私があまり質問していない場合、またはすべてのLinuxフレーバーが理にかなっている場合)
提案を待っています...
平和:) Devang Kamdar
解決
どこでも利用できる昔ながらのsh
をお勧めします。
また、移植性には、シェルだけでなく、awk
、grep
、ps
、echo
などのスクリプトで使用される他のコマンドも含まれることに注意してください。
他のヒント
本当にポータブルにしたい場合(シェルスクリプトが保守可能かどうかはわかりません)、#!/ bin / shを指定して、ダッシュおよび可能であれば他のシェル。
BASHは多くのLinuxディストリビューションのデフォルトであるため、現時点で最も広く普及しているシェルであると思います(cygwinを使用するWindowsでも実行できますが、他のシェルにも当てはまる可能性があります)。 別の方法としては、スクリプトにシェル自体を使用せず、perl、python、rubyなどのスクリッピング言語の1つを使用することもできます...
私は通常kshを使用します。機能と移植性の間の良い妥協点だと思います。ほとんどのLinuxボックスとSolarisにあります(または互換性のあるバージョンが利用可能です)。HP-UXを使用してからしばらく経ちますが(ありがたいことに)、そこでも利用可能だったと確信しています。
サポートする必要のあるすべてのマシンが最新のものである場合は、bashがオプションになる可能性があります。Solaris10にはコピーが付属しています。これはほとんどのLinuxマシンのデフォルトです。
最小公分母はBourne(sh)になるため、移植性が主な関心事であるかどうかを検討する価値があります。ただし、kshとbashのより使いやすい機能のいくつかが欠けています。
スクリプトを作成する場合は、csh / tcshを避けて操作する価値があります。有害と見なされるCshプログラミングは古くからありますが、それでも大部分は関連性があります。
私の答えはperlです。
「sh」「bash」などでできることはすべて、よりエレガントな方法で実行できます。
また、実際にはよりポータブルです。特定のバージョンのperlは、すべてのプラットフォームで非常に一貫性があります。Linux、Solaris、AIXのディストリビューションに大きな違いはありませんが、これらのプラットフォーム間でシェルスクリプトを移植するのは非常に困難です。
そしてそれはすべてのウィンドウのpaltformsで動作します!バックティックを回避し、「system()」スクリプトを実行する可能性が高い場合。
Python!強化されたPythonインタープリターであるiPythonをチェックしてください。また、 Python forUnixおよびLinuxシステム管理。
優れたポータブルスクリプトを書くことができ、それは楽しいです。