シェルスタイルで宣言された関数は、他のシェルタイプで使用できますか?

シェルスタイルで宣言された関数は、他のシェルタイプで使用できますか?

Linuxシステム用の多くの共通関数定義を含むbashスクリプトがあります。

それを取得し、他のシェルバージョン(cshとksh)の機能を使用できますか?

ベストアンサー1

Stéphane Chazelasが書いたようにコメントcsh関連ファイルにはtcsh機能がないため、とにかく持っている機能ファイルをインポートできません。

ただし、Bourneに似たシェルは構文と機能を共有することが多く、実際にはbash多くの機能を借用しますkshが、これらのシェルの一部の機能は互換性がありませんdashUbuntu動作は元の Bourne シェルに近い。

発生するもう1つの問題は、関数だけでなく、関数が呼び出すことができるコマンドにも関連しています。 Ubuntuでこれらの機能を使用しても突然FreeBSDに移動した場合は、類似またはfind頻繁psに使用されるオプションが異なる動作または欠落していることがわかります。

したがって、関数を使用できるようにするには、コマンドとオプションの移植性を考慮し、POSIX標準と元のBourneシェル構文にできるだけ近い関数を作成することをお勧めします。

sudoまたは、必要なシェルを常にインストールできる場合(使用しているシステムに対する権限がないと発生しない可能性がある)、特定のシェル構文で関数を作成してください。

バラより移植可能なスクリプトを書くことはいつ重要ですか?より多くの情報を入手してください。

おすすめ記事