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. gcatFor cat). Bu var iyi bir fikir değil , GNU coreutils ile MacOS coreutils yerine.
Önemliyse, bashMac 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 dateyerine gdateyine 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 /procsözde dosya sisteminin olmamasıdır . Bu benim Linux betiklerimin çoğunu kırdı ve procMac 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 ~/.bashrcve ~/.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.
psolarak yapar, farklı bayraklar vardırgrep). Ubuntu betiğimin neden Mac'te aynı çıktıyı üretmediğini anlamaya çalışırken kafamı duvara çarptım.