Yanıtlar:
Bash'in kendisi çoğunlukla aynı olacak. Birkaç küçük fark olacaktır ancak bunların hiçbiri komut dosyalarınızın taşınabilirliğini etkilemeyecektir.
Asıl sorun, MacOS coreutils'in FreeBSD tabanlı olmasıdır, ancak kullandığınız yardımcı programlar GNU projesinden kaynaklanmaktadır. FreeBSD çekirdek bileşenleri her zaman GNU çekirdek öğeleriyle uyumlu değildir. Sed , grep , ps ve diğer hizmetlerin GNU ve FreeBSD versiyonları arasında performans ve davranış farklılıkları vardır .
GNU coreutils'i yükleyebilirsiniz ancak g-
önekleri vardır (ör. gcat
For cat
). Bu var iyi bir fikir değil , GNU coreutils ile MacOS coreutils yerine.
Önemliyse, bash
Mac OS X'de Mountain Lion hala 3.2 sürümüdür. Bugünlerde çoğu linux dağıtımı 4.x ile gönderiliyor, bu yüzden sürüm 4 özelliklerini kaçırıyorsunuz. Şu anda, 4.2.45 sürümü Homebrew'den geçici bir çözüm olarak edinilebilir. Mavericks'te hangi versiyonun olduğunu bilmiyorum, henüz kimsenin söyleyebildiğinden emin değilim.
Diğerleri tarafından belirtildiği gibi bash
, aynı bash
(daha önce belirtilen sürümlerin dışında) aynı, ancak Mac OS X (çoğunlukla) BSD kullanıcısı kullanıyor. Standart sistem yardımcı programlarının çoğu, biraz farklı seçeneklere sahiptir veya biraz farklı davranır. Maalesef burada listelemek için çok fazlalar.
Yükleme homebrew sonra bazı temel araçlardan gnu sürümlerini yükleyin (bir paket yöneticisi):
$ brew install coreutils
$ brew install gnu-sed
Her yüklemelerin sonra, sen sadece çağrı böylece takip edebilirsiniz adımları gösterecektir date
yerine gdate
yine herhangi bir değişiklik yapmadan Linux bash komut kullanabilirsiniz böylece, mesela.
Tebrikler, platformlar arası komut dosyası çalıştırma sorunlarınızın% 99'unu çözdünüz.
Linux'tan Mac'e gelmek sinir bozucu olabilecek bir şey /proc
sözde dosya sisteminin olmamasıdır . Bu benim Linux betiklerimin çoğunu kırdı ve proc
Mac bash betiğinizde bulacağınız bilgiyi elde etmenin uygun yollarını bulmak zor olabilir .
Ben 'çoğunlukla linux, zaman zaman mac' kullanıcısıyım ve şunu buldum:
bash ~/.bashrc
ve ~/.bash_aliases
çoğunlukla aynı şekilde çalışır.
Bulduğum bir sorun, renk istemini değiştirme komutunun Mac'te işe yaramadığıydı. Bu ve diğer deneyimlerden, dosyamı oluştururken terminal penceresini açık tutmayı ve giriş yapmayı öğrendim .bashrc
. Bu, 'yeni pencereyi' test edebilir ve hala oturum açmış penceredeki hataları bulabilirim.
ps
olarak yapar, farklı bayraklar vardırgrep
). Ubuntu betiğimin neden Mac'te aynı çıktıyı üretmediğini anlamaya çalışırken kafamı duvara çarptım.