1

Ubuntuで実行するために使用する古いスクリプトがあります。今、私はMacを持っていて、スクリプトを再利用したいと思っています。

Mac OSで次のコマンドに相当するものを誰かが知っていますか?

def runCmd(cmd):
    p = subprocess.Popen(cmd,
                         shell=True, 
                         stdin=subprocess.PIPE, 
                         stdout=subprocess.PIPE, 
                         stderr=subprocess.PIPE, 
                         close_fds=True)
    result=p.stdout.readlines()
    s=result[0].split()[0]
    return s

def getKernelVer():
    cmd="uname -r| cut --delim=\'.\' -f1-2"
    return runCmd(cmd)

def getUbuntuVer():
    cmd="lsb_release  -a | grep Release | cut -f 2"
    return runCmd(cmd)

ありがとう

4

2 に答える 2

3

uname -rダーウィンの下でも同じように機能します。カーネルバージョンは、ほとんどの人が話したり気にしたりするものではありませんが、そこにあります。唯一の落とし穴はcut、長いオプションをサポートしていないということ--delimです。代わりに、これを試してください。

uname -r | cut -d. -f1-2

ただし、カーネルのバージョン管理は、DarwinとLinuxではまったく異なるため、cutここで実行する目的は明確ではありません。(実際、バージョン管理スキームがリリース3.0で大幅に変更されたため、Linuxでも明確ではありません。)

Mac OSの現在のバージョン(Ubuntuで取得している「リリース」とほぼ同等)を取得するには、次のコマンドを使用できます。

sw_vers -productVersion
于 2013-02-10T21:22:52.277 に答える
1

Pythonの「プラットフォーム」モジュールを使用できます(Ubuntuにアクセスできません。plsは検索結果を投稿してみてください:)

  1. platform.system()を使用して、LinuxとDarwinを区別します
  2. platform.release()を呼び出して、カーネルバージョンを取得します
  3. platform.linux_distribution()またはplatform.mac_ver()を呼び出して、ベンダー固有のバージョン番号を取得します。

CentOSの場合:

$ python
Python 2.7.5 (default, Jul 23 2013, 17:26:16) 
[GCC 4.7.2 20121015 (Red Hat 4.7.2-5)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import platform
>>> platform.system()
'Linux'
>>> platform.release()
'2.6.32-358.18.1.el6.x86_64'
>>> platform.linux_distribution()
('CentOS', '6.4', 'Final')
>>> 

OS Xの場合:

$ python
Python 2.7.5 (default, Aug 25 2013, 00:04:04) 
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import platform
>>> platform.system()
'Darwin'
>>> platform.release()
'13.0.0'
>>> platform.mac_ver()
('10.9', ('', '', ''), 'x86_64')
于 2013-10-27T11:11:42.930 に答える