J'utilise lscpu | grep 'MHz'
pour obtenir ma vitesse d'horloge. J'obtiens des résultats différents en fonction de la méthode utilisée pour appeler cette commande.
Méthode 1 : le taper dans le terminalCPU MHz: 1200.000
Méthode 2 : L'encapsuler dans un script appelé test.sh
script code :
#! /bin/bash
cpu=$(lscpu | grep 'MHz')
echo $cpu
Ensuite, dans la terminaL
$ chmod +x test.sh
$ ./test.sh
Sortie :CPU MHz: 1200.000
Jusqu'à présent, tout va bien. Mais maintenant, méthode 3 : cliquer sur 'run or view current file' dans Geany sur test.sh. Résultat :CPU MHz: 2200.000
Méthode 4 : écrire un script Python appelé test.py qui appelle test.sh.
Code Python script :
#! /usr/bin/python
import subprocess
def test():
subprocess.call("./test.sh")
if __name__ == '__main__':
test()
Ensuite, dans le terminal :$ python test.py
Sortie :CPU MHz: 2200.000
J'ai essayé à la fois Python et python3. Les deux donnent le même résultat (erroné).
Pourquoi est-ce que lscpu
donne un résultat différent lorsqu'il est exécuté indirectement ? Et comment puis-je corriger ou contourner ce problème ? Y a-t-il un problème dans mon code ? Pour ce que ça vaut, j'utilise Ubuntu 13.10.
Merci :-).