最近シェルスクリプトのパフォーマンスチューニングを調べていますが、POSIXシェルスクリプトの使用がブロックされていますが、それも標準にすぎませんが、標準よりも実装するのが難しいと思います。これは高性能のためにカスタマイズされ、調整され、最終的に設計されています。 POSIXシェルスクリプトに役立つスレッドを作成するのに役立つと思いました。私の質問は次のとおりです
- POSIXシェルスクリプトは他のシェルプログラミングと比較してパフォーマンスが良いですか?
- POSIXシェルスクリプトに移行するには?
- 私のコードをPOSIXに公開することは不可能ですか?
- POSIXを使用せずに高性能を好む場合は説明しますか?
答え1
質問
学生がbash(たとえば/ bin / sh)を使用してシステムで初期開発を実行すると、スクリプトは移植性の問題に直面することがよくあります。 BashはPOSIX規格のすべての機能をサポートしていますが、POSIXで定義されていない広範な拡張機能もサポートしています。これらの「bashism」を使用するスクリプトを作成するときに、/ bin / shが他のPOSIX互換シェルの場合、スクリプトが正しく実行されるという保証はありません。 Ubuntu システム Nice.harvard.edu では、/bin/sh は bash よりはるかに高速に実行されるシェルである dash ですが、POSIX 標準で指定された以上の機能はサポートしていません。スクリプトに「bashisms」を使用している学生は、最後の瞬間に自分のスクリプトがniceの/ bin / shで実行されていないことをしばしば見つけます。
解決策
以下は、これらの問題を回避するのに役立ついくつかのヒントです。
- 可能であれば、常に/bin/shを使用してNiceでスクリプトを開発してください。
- 開発の目的で、パーソナルシステムに厳密なPOSIXシェル(例えば、ダッシュ)をインストールしてください。
- 指定された機能のみを使用ここシェルスクリプトを開発するとき
- よりこのファイル「bashism」を特定して交換する方法についてのヒントを入手してください。
- autoconfに関する完全なドキュメント( 'info autoconf.info')をご覧ください。良い内容があります。「ポータブルシェル」プログラミングセクション
バラよりこれより多くの情報を知りたいです。