2011-01-17 8 views
0

Ich mache einige Kommandozeilen-Tools, dass die Ausgangsfortschrittsinformationen, wie es zu STDERR läuft, wieWas ist die beste Praxis für Groß- und Kleinschreibung bei der Ausgabe des Programmfortschritts an STDERR?

found document 
using cached version 
analyzing 

etc. 

Soll ich Ausgang vollständige Sätze mit aktivierten ersten Buchstaben und Perioden am Ende, oder ist diese Art von terse uncapitalized Ausgabe OK? Wie ist der Expertenkonsens darüber?

+1

würde ich nur Auslassungszeichen setzen, wo erforderlich, um Start-Ereignisse von fertigen Ereignissen zu unterscheiden –

Antwort

1

Meine Lieblingsmethode, um den Fortschritt zu bezeichnen, ist ein "Spinner". Hier ist eine implementiert mit bash. Der erste Parameter ist die PID des Prozesses, den Sie verfolgen möchten, und der zweite Parameter ist eine optionale Nachricht. Die PID wird am einfachsten über vergangen $(pgrep <some_process_name>)

#!/bin/bash 

spinner() { 
    [[ -n "$2" ]] && echo -n "$2 " 

    if [[ ! $1 =~ ^[[:digit:]]+$ ]]; then 
    return 
    fi 

    while [[ -d /proc/$1 ]]; do 
    for c in '/' '-' '\' '|'; do 
     printf "%c\b" "$c" 
     sleep 0.1 
    done 
    done 
    printf " \n" 
} 

du /usr > /dev/null 2>&1 & # Example program to monitor 
spinner $(pgrep du) "Optional Message Here" 
+0

Aber Sie werden keine Eingänge auf, was haben der Prozess tut ... nur, dass es etwas tut . – Twister

+0

@Twister obv es ist nicht für jede Anwendung anwendbar, die Sie es werfen können, aber für diejenigen, wo es viel Zahlenknirschen ist, um zu einer endgültigen Antwort zu kommen, funktioniert es ganz nett. Außerdem muss der Spinner für die Apps, die die Ausgabe produzieren, ohnehin nicht benötigt werden, da der Benutzer niemals raten muss, ob der Prozess eingefroren ist oder ob tatsächlich etwas passiert. Die Daten sind genau dort auf dem Bildschirm. – SiegeX

+0

stimme zu. (Übrigens mag ich die Idee des Spinner;)) – Twister

Verwandte Themen