![可能な限り移植性の高いシェルスクリプトを書く方法をどこで見つけることができますか? [コピー]](https://linux33.com/image/16917/%E5%8F%AF%E8%83%BD%E3%81%AA%E9%99%90%E3%82%8A%E7%A7%BB%E6%A4%8D%E6%80%A7%E3%81%AE%E9%AB%98%E3%81%84%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%82%92%E6%9B%B8%E3%81%8F%E6%96%B9%E6%B3%95%E3%82%92%E3%81%A9%E3%81%93%E3%81%A7%E8%A6%8B%E3%81%A4%E3%81%91%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
重複の可能性:
ポータブルシェルプログラミングリソース
追加のデプロイのためにシェルスクリプトを作成したいと思います。だから私は可能な限り移植可能な方法で書きたいと思いますqzdfsh
。自分のコンピュータに誤ってインストールした特定のバージョンでのみ使用できる素晴らしいものに頼ってはいけません。スクリプトはそれほど複雑ではありません(最悪のシナリオは、ファイル拡張子を削除してプログラムの戻り値をテストすることです)。
(ほぼ)すべてのシェルでサポートされている機能はどこで見つけることができますか?
(私はこれが/bin/sh
しばしば「他のもの」とシンボリックリンクされていることを特に知っているので、単に動作するかどうかをテストすることは/bin/sh
疑わしい戦略のように見えます。)
答え1
bashへのシンボリックリンクかもしれませんが、/bin/sh
それでも影響を与えます。 Bashはそれがどのように呼び出されたかを見て、明示的にシンボリックリンクを介して、または引数/スイッチを介して "sh"で呼び出されると、bashはPOSIXモードで実行しようとします。
だからシャバンを試してみてください
#/bin/sh
始める./script
だけでsh .script
十分です。