LinuxのBashとMac OSのBash

LinuxのBashとMac OSのBash

iMacを買いたいです。私は長い間Linuxで働いてきたし、多くのbashスクリプトを書いてきました。 Mac OSですべてのbashコマンドと機能が利用可能かどうかを知りたいです。 Mac bashスクリプトの経験がある人はいますか?ご意見ありがとうございます。

答え1

Bash自体は基本的に同じです。いくつかあるよ小さな違いただし、どちらもスクリプトの移植性には影響しません。

最大の問題は、MacOS coreutilsがFreeBSDに基づいており、使用するユーティリティがGNUプロジェクトにある可能性が高いことです。 FreeBSD coreutil は GNU coreutil と常に互換性があるとは限りません。 GNUとFreeBSDのバージョンにはパフォーマンスと動作上の違いがあります。sedgrepメモその他のユーティリティ

GNU coreutilsをインストールできますが、g-プレフィックスがあります(例gcat:)cat。それこれは良い考えではありません。MacOS coreutils を GNU coreutils に置き換えます。

答え2

重要な点であれば、bashMac OS X Mountain Lionはまだバージョン3.2です。今日、ほとんどのLinuxディストリビューションには4.xが付属しているため、バージョン4の機能が欠けています。現在、Homebrewは解決策としてバージョン4.2.45を提供しています。私はMavericksのバージョンが何であるかわからず、知っている人がそう言うことができるかもしれません。

他の人が述べたように(すでに述べたバージョンを除いて)bash同じですが、Mac OS Xは(主に)BSDユーザー領域を使用します。bash多くの標準システムユーティリティでは、オプションや動作が若干異なります。残念ながら、ここに記載するには多すぎます。

答え3

インストールする自家製(パッケージマネージャ)次に、いくつかの基本ユーティリティのGNUバージョンをインストールします。

$ brew install coreutils
$ brew install gnu-sed

各インストールの後に、変更なしでLinux bashスクリプトを引き続き使用できるように、単に呼び出すことができるようにdate実行できる手順が表示されます。gdate

おめでとうございます。クロスプラットフォームスクリプトの問題の99%を修正しました。

答え4

私は「主にLinux、時にはMac」ユーザーで、次のことを見つけました。

bash~/.bashrcであり~/.bash_aliases、ほとんど同じように動作します。

私が見つけた問題の1つは、色ヒントを変更するコマンドの1つがMacで動作しないことです。このエクスペリエンスとは異なるエクスペリエンスでファイルを設定しながら、ターミナルウィンドウを開いたままにしてログインする方法を学びました.bashrc。つまり、「新しいウィンドウ」をテストし、まだログインしているウィンドウでエラーを見つけることができます。

関連情報