IMacを購入しています。私はLinuxに長い間取り組んでおり、一連のbashスクリプトを作成しています。 Mac OSですべてのbashコマンドと機能が利用できるかどうか疑問に思っていましたか?誰でもMac bashスクリプトの経験がありますか?私はあなたの入力に感謝します。
Bash自体はほとんど同じです。いくつかの 小さな違い がありますが、これらのどれもスクリプトの移植性に影響を与えません。
主な問題は、MacOS coreutilsがFreeBSDベースであることですが、これまで使用していたユーティリティはGNUプロジェクトからのものである可能性が高いです。FreeBSDcoreutilsは常にGNU coreutils。GNUとFreeBSDバージョンの sed 、 grep 、 ps 、 その他ユーティリティ 。
GNU coreutilsをインストールできますが、g-
接頭辞(例:gcat
for cat
)。 MacOS coreutilsをGNU coreutilsに置き換えることは 良い考えではありません です。
問題がある場合でも、Mac OS X Mountain Lionのbash
はバージョン3.2のままです。最近のほとんどのLinuxディストリビューションは4.xで出荷されているため、バージョン4の機能がありません。現在、バージョン4.2.45は回避策としてHomebrewから入手できます。 Mavericksのバージョンがわからないので、知っている人が言ってもよいかどうかはまだわかりません。
他の人が述べたように、bash
はbash
と同じです(既に言及したバージョンを除く)が、Mac OS Xは(ほとんど)BSDユーザーランドを使用しています。標準システムユーティリティの多くは、オプションがわずかに異なるか、動作がわずかに異なります。残念ながら、数が多すぎてここにリストできません。
homebrew (パッケージマネージャ)をインストールしてから、いくつかの基本ユーティリティのgnuバージョンをインストールします。
$ brew install coreutils
$ brew install gnu-sed
インストールのたびに、たとえばdate
の代わりにgdate
を呼び出すだけで実行できる手順が表示されるため、Linux bashスクリプトを変更せずに引き続き使用できます。
おめでとうございます。クロスプラットフォームスクリプトの問題の99%を解決しました。
LinuxからMacへの移行にイライラすることがあるのは、/proc
疑似ファイルシステムがないことです。これは私のLinuxスクリプトの多くを壊しました、そしてproc
で見つけたのと同じ情報をMac bashスクリプトに取り込む適切な方法を見つけるのは難しいかもしれません。
私は「主にLinux、たまにMac」のユーザーですが、次のように感じています。
bash、~/.bashrc
および~/.bash_aliases
はほとんど同じように機能します。
私が見つけた1つの問題は、カラープロンプトを変更するコマンドの1つがMacで機能しないことでした。そのことや他の経験から、.bashrc
ファイルを設定するときにターミナルウィンドウを開いたままログインする方法を学びました。つまり、「新しいウィンドウ」をテストして、まだログインしているウィンドウでエラーを見つけることができました。