2010-11-22 21 views

cevap

15

Sen uname yardımcı programını kullanabilirsiniz.

-o, --Kullanma sistemi
baskı işletim sistemi

örnek kod::

if [ `uname -o` = "Cygwin" ] 
then 
    # Cygwin specific stuff 
else 
    # Other UNIX (Linux, etc.) specific stuff 
fi 
+3

daha spesifik olduğunu ama [OS X'uname (1)] (http://developer.apple.com/documentation/Darwin/Reference/ManPages/man1/uname. 1.html) (BSD uname) '-o' bayrağını desteklemiyor. – ryandesign

+2

Evet, süper taşınabilir olmanız gerekiyorsa, '-o' kullanmanızı önermem, çok fazla * nix çeşidi bunu tanımıyor. -s' ve '-r'nin bazı kombinasyonları hile yapmalı ve bu bayraklar zamanın başlangıcından beri etrafta. –

2

çek uname yardımcı programının çıktı

+0

+1 ''uname -o' –

1

bazı yorumlar birleştiren ve kullanımdan kaldırılmış backticks Sonuçlar kaldırılırken:

uname(1) itibaren
#!/bin/bash 
OS_NAME=$(uname -s) 
OS_NAME=${OS_NAME:0:6} 

if [[ "$OS_NAME" = "CYGWIN" ]] 
then 
    # Cygwin specific stuff 
else 
    # Other UNIX (Linux, etc.) specific stuff 
fi 
3

Bu ksh ve bash ile çalışır.

#!/bin/ksh 
case "$(uname -s)" in 
    CYGWIN*) echo This is Cygwin ;; 
    *) echo This is not Cygwin ;; 
esac 
İlgili konular