#!/bin/bash
cat <<EOF
System python : `python -V`
EOF
显示如下
Python 2.6.6
System python :
我希望以这种方式展示
System python : Python 2.6.6
答案 0 :(得分:2)
Python正在将版本信息发送到stderr
而不是stdout
。因此,当您运行python -v
命令时,它会立即打印,而不是包含在命令的扩展中。将其stderr
重定向到stdout
以解决此问题:
cat <<EOF
System python : `python -V 2>&1`
EOF
答案 1 :(得分:2)
再使用反引号not recommended;更好地使用$()
:
VERSION=$(python -V 2>&1)
echo "System python : $VERSION"
(正如许多其他评论所述;我将stderr输出重定向到stdout;因为python -V打印到stderr)
答案 2 :(得分:1)
答案 3 :(得分:0)
这是我见过的最无用的猫!
使用echo:
echo 'System python :' `python -V 2>&1`
澄清:python -V
将数据输出到stderr,因此它不会被shell捕获并立即打印。 2>&1
将stderr重定向到stdout,所以一切正常。