472 Stimmen

OS X Bash, Befehl 'watch'

Ich bin auf der Suche nach dem besten Weg, den Linux-Befehl "watch" auf Mac OS X zu duplizieren. Ich möchte alle paar Sekunden einen Befehl ausführen, um den Inhalt einer Ausgabedatei mit "tail" und "sed" nach Mustern zu durchsuchen.

Was ist die beste Option auf einem Mac, und geht das auch ohne Software-Download?

12voto

Marvin Pinto Punkte 29072

Ich gehe von der Antwort von aquí :

bash -c 'while [ 0 ]; do <your command>; sleep 5; done'

Aber Sie sind wirklich besser dran Installation der Uhr denn dies ist nicht sehr sauber ...

10voto

A_funs Punkte 1188

Wenn die Uhr nicht über

brew install watch

Es gibt noch eine ähnliche/kopierte Version, die installiert wurde und bei mir einwandfrei funktionierte

brew install visionmedia-watch

https://github.com/tj/watch

9voto

jon Punkte 91

Oder, in Ihrem ~/.bashrc Datei:

function watch {
    while :; do clear; date; echo; $@; sleep 2; done
}

7voto

tungv Punkte 107

Um ein Flackern zu vermeiden, wenn Ihr Hauptbefehl spürbar lange braucht, um fertig zu werden, können Sie die Ausgabe aufzeichnen und den Bildschirm erst löschen, wenn er fertig ist.

function watch {while :; do a=$($@); clear; echo "$(date)\n\n$a"; sleep 1;  done}

Dann verwenden Sie es:

watch istats

2voto

Robert Nagtegaal Punkte 719

Versuchen Sie dies:

#!/bin/bash
# usage: watch [-n integer] COMMAND

case $# in
    0)
        echo "Usage $0 [-n int] COMMAND"
        ;;
    *)      
        sleep=2;
        ;;
esac    

if [ "$1" == "-n" ]; then
    sleep=$2
    shift; shift
fi

while :; 
    do 
    clear; 
    echo "$(date) every ${sleep}s $@"; echo 
    $@; 
    sleep $sleep; 
done

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X