将.bashrc函数从Python2.7移植到Python3
您好,有人能解释一下从python2.7到3移植这个函数吗,因为我不能这么做将.bashrc函数从Python2.7移植到Python3,bash,python-2.7,python-3.x,Bash,Python 2.7,Python 3.x,您好,有人能解释一下从python2.7到3移植这个函数吗,因为我不能这么做 function cpuusg(){ echo print `top -n 1 | tr -s " " | cut -d$" " -f10 | tail -n +8 | head -n -1 | paste -sd+ | bc`/ `nproc` | python } 忽略(几乎)此函数的任何其他问题,问题在于正在构造并传递给Python的print语句需要转换为对函数的调用 function cpuusg(
function cpuusg(){
echo print `top -n 1 | tr -s " " | cut -d$" " -f10 | tail -n +8 | head -n -1 | paste -sd+ | bc`/ `nproc` | python
}
忽略(几乎)此函数的任何其他问题,问题在于正在构造并传递给Python的print
语句需要转换为对函数的调用
function cpuusg() {
numerator=$(top -n 1 | tr -s " " | cut -d " " -f10 | tail -n +8 | head -n -1 | paste -sd+ | bc)
denominator=$(nproc)
echo "print($numerator / $denominator)" | python
}
你有没有试过用管道连接到python3而不是python?python3的
print
需要括号。此外,在Python 2中,/
除法运算符进行整数除法;在Python3中,它进行实数除法。为什么要将它输送到Python
,您可以在bash
中执行简单的算术表达式。当您使用| python3
时,您会遇到什么错误?@KeithThompson-true,但工具链中的bc
会发生什么错误。您到底想计算什么?从top
中添加特定列可能不是这样做的,因为在该列中,您获得的行数取决于终端窗口的大小,并且几乎肯定不会反映所有活动进程。