如何仅重新调整python版本

gr6*_*r68 5 python bash

任何人都可以解释我为什么

python -V | awk '{print $2}'
Run Code Online (Sandbox Code Playgroud)

返回这个

Python 2.7.5                             
Run Code Online (Sandbox Code Playgroud)

代替

2.7.5
Run Code Online (Sandbox Code Playgroud)

如何只返回没有“ Python”的版本号?

Tur*_*son 9

如果你跑

python -V >/dev/null
Run Code Online (Sandbox Code Playgroud)

您会注意到您仍然可以输出!显然,将python -V其输出打印到stderr,而不是stdout。

在类似bourne的外壳中,这应该起作用:

python -V 2>&1 | awk '{print $2}'
Run Code Online (Sandbox Code Playgroud)

  • 不错的收获。事实证明,这仅适用于Python 2,Python 3使用stdout。 (7认同)
  • @Ture您的打印版本的python没注意到您对2的测试吗? (3认同)
  • @bereal:多年的Un * x经验使我很难过,当我的过滤器拒绝过滤时,通常是因为我过滤了错误的流。:) (2认同)

Rav*_*h13 5

如何使用纯python命令本身(我需要用点之间的点对其进行格式化)。

python -c 'import sys; print sys.version_info[0],sys.version_info[1],sys.version_info[2]'
Run Code Online (Sandbox Code Playgroud)

或根据克里斯的评论使用:

python -c 'import sys; print(".".join(map(str, sys.version_info[:3])))'
Run Code Online (Sandbox Code Playgroud)