Nasıl özellik listesi çalışan, Linux veya Mac kontrol etmek için? | Netgez.com
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

  • Electro Posé

    Electro PosÃ

    21 ÅžUBAT 2013
  • Mark Halberstadt

    Mark Halbers

    19 ÅžUBAT 2010
  • pissengehen

    pissengehen

    26 EYLÜL 2006