Cygwin'de bir komut dosyasının çalışıp çalışmadığını kontrol etmenin basit bir yolu var mı? Windows'a gönderilen yolları bekleyen bir yardımcı programa sahip bir komut dizisine sahibiz. Böylece Cygwin'daysak yolları yollara dönüştürmeliyiz.Cygwin'de çalışma algılamaya çalışan kabuk komut dosyası
10
A
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
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
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
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. –