SORU
12 AĞUSTOS 2010, PERŞEMBE


Nasıl özellik listesi çalışan, Linux veya Mac kontrol etmek için?

Hem Windows/özellik listesi ve Mac ve Linux kullanılan bir kabuk var. Her sürüm için biraz farklı değişkenlere ihtiyaç duyar.

Nasıl shell/bash bir komut, Linux, Mac veya özellik listesi içinde çalışan olup olmadığını tespit edebilir mi?

CEVAP
12 HAZİRAN 2013, ÇARŞAMBA


Burada üç farklı işletim sistemi türü (Linux, Mac OS X, Windows) tespit etmek için kullanılan bash script

Dikkat

  • Bash script, #!/bin/bash yerine #!/bin/sh sorun /bin/sh neden farklı bir platformda farklı bir varsayılan kabuk içine bağlantılı engellemek için kullanın, ya da hata olacaktırbeklenmedik bir operatörbenim bilgisayar (64 bit 12.04 Ubuntu) üzerinde oldu.
  • Mac OS X 10.6.8 (Snow Leopard) yüklemediğiniz sürece expr program yok, ben sadece uname kullanın.

Tasarım

  1. uname sistem bilgileri () -s parametre almak için kullanın.
  2. expr substr dize ile başa çıkmak için kullanın.
  3. 10* elif fi *eşleştirme işi yapmak için kullanın.
  4. Eğer isterseniz daha fazla destek sistemi ekleyin, sadece uname -s belirtimi takip edebilirsiniz.

Uygulama

#!/bin/bash

if [ "$(uname)" == "Darwin" ]; then
    # Do something under Mac OS X platform        
elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
    # Do something under Linux platform
elif [ "$(expr substr $(uname -s) 1 10)" == "MINGW32_NT" ]; then
    # Do something under Windows NT platform
fi

Test

  • Linux (Ubuntu 12.04 LT) OK test.
  • Mac OS X 10.6.8 (Snow Leopard) OK test.
  • Windows (Windows 7 64 bit) OK test.

Ne öğrendim

  1. Her iki açılış ve kapanış tırnak için kontrol edin.
  2. Eksik parantez ve parantez için onay {}

Referanslar

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 8lacKy

    8lacKy

    30 Mart 2009
  • Phymec

    Phymec

    18 Temmuz 2009
  • SHAYTARDS

    SHAYTARDS

    1 EKİM 2008