2017-05-22 3 views
-1

Hallo würde jemand bitte an Port diese Funktion von python2.7 bis 3 erklären, wie ich nicht in der Lage habe Biene so tunPortierungs Bashrc Funktion von Python 2.7 Python 3

function cpuusg(){ 
    echo print `top -n 1 | tr -s " " | cut -d$" " -f10 | tail -n +8 | head -n -1 | paste -sd+ | bc`/ `nproc` | python 
} 
+1

Haben Sie versucht, Python3 anstelle von Python auszupeitschen? –

+0

Python 3 'print' benötigt Klammern. Auch in Python 2 macht der '/' Divisionsoperator eine ganzzahlige Division; in Python 3 macht es echte Teilung. –

+0

Warum würden Sie es zu 'python' pipen, können Sie einfache arithmetische Ausdrücke in' bash' machen. Welchen Fehler bekommst du, wenn du '| Python3'? – AChampion

Antwort

1

Ignorieren (fast) jede andere Frage Bei dieser Funktion besteht das Problem darin, dass die Anweisung print, die erstellt und an Python übergeben wird, in einen Aufruf einer Funktion konvertiert werden muss.

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 
}