2017-10-20 21 views
2

Ceci est mon .zshrc:Comment faire le travail REPORTTIME de zsh?

export REPORTTIME=3

Quand je lance sleep 4 il ne émet. Si je change à REPORTTIME=blablabla (ou quelque chose de non-sensuel) il ne déclenche pas d'erreur et commence à se comporter comme REPORTTIME=0, c'est-à-dire renvoyant le temps pris pour tout.

Fait intéressant, si j'essaie REPORTTIME=3s je reçois le message suivant:

zsh: bad math expression: operator expected at `s' sleep 4 0.00s user 0.00s system 0% cpu 4.004 total

J'obtiens l'erreur et toujours la sortie. J'ai essayé RERPORTTIME="3" et REPORTTIME=1+2. Aucun de ces travaux.

En outre, si je cours python -c "import time; time.sleep(4)" j'obtiens les mêmes résultats (ainsi le problème n'est pas avec sleep).

Bien sûr, j'ai essayé d'autres valeurs (autres que 3). J'utilise MacOS avec iterm2 et zsh est mon shell par défaut.

+0

Je pense que le problème est que 'sleep' ne prend pas vraiment de temps. Essayez un processus de longue durée différent. Je l'ai reproduit, 'sleep' ne rapporte pas, mais' du -s/somereasonablesizedfolder/* 'le fait. – Blorgbeard

Répondre

0

Vous devez définir explicitement un entier non négatif; à savoir

% REPORTTIME=3 

Réglage d'autres valeurs non-négatives ne fonctionne pas sur mon zsh v5.4.2 soit. Exécuter quelque chose comme une mise à jour du système (par exemple, yaourt) puis agit comme si j'avais mis time sur le devant de celui-ci. Jolie slick! Vous avez donc besoin d'une commande qui mange un certain temps utilisateur/système; sleep fait pas. Bien total écoulé est assez long, le temps de l'utilisateur et le système est pas:

% time sleep 3 
sleep 3 0.00s user 0.00s system 0% cpu 3.002 total 

De plus, pas besoin de ce export car il est utilisé directement par zsh.

+0

Merci! Je ne savais pas 'REPORTTIME' comptait seulement l'heure de l'utilisateur/système, pas l'heure de l'horloge murale. BTW, apparemment 'time.sleep' de Python ne compte pas non plus, bien qu'il se passe dans un travail python. Cela fonctionne: 'python -c" import numpy as np; à partir de scipy.linalg import lu; lu (np.random.rand (10000,10000)) "' – mparada