私はbashismをたくさん使うbashで書かれたプログラムを持っています。私はそこにいて、checkbashism
bashshellcheck
が--posix
手動レビューに適していることを知っています。しかし、私が本当に欲しいのはPythonのようなものです。2対3私はそれが存在すると仮定します(存在しない場合はそれについて書くこともできます)。
基本的に私は最新のbashでプログラムを書き続けたいと思いますが、次のように実行されるビルドスクリプトも持っていると思います。
$ bash2posix myprogram.sh > myprogram-compat.sh
解決できる問題は「修正」し、解決できない問題があれば中断します。存在の証拠は見つかりませんでした。お分かりの方はいらっしゃいますか?ありがとうございます。
編集:私はこれが可能であると確信しています。一般的に、多くの屈辱に対応するコストはかなり高くなります。たとえば、()の文字列置換は、精密演算子()を使用して文字列の特定のサフィックスを「検索」する組み込み関数を介して実行できます${//}
。その後、置換コマンドの長さをテストして「見つかった」ことを確認し、置換コマンドを使用して新しい文字列を再構築できます。これは効率的ですか?いいえ、もちろんそうではありません。しかし、それは完全に可能です。printf
.
答え1
それは不可能です。少なくとも100%ではありません。
私はGNU Parallelでenv_parallel.dash
記事を書きましたenv_parallel.bash
。 (https://git.savannah.gnu.org/cgit/parallel.git/tree/src/env_parallel.dashそしてhttps://git.savannah.gnu.org/cgit/parallel.git/tree/src/env_parallel.bash)
(関数本文表示)に該当項目がないため、 にenv_parallel.bash
変換できません。env_parallel.dash
typeset -f myfunc
dash