Umgeben Sie den Befehl mit Anführungszeichen
watch -n 1 'tail -n 200 log/site_dev.log | fgrep Doctrine'
Ich möchte diesen Befehl ausführen:
watch -n 1 tail -n 200 log/site_dev.log | grep Doctrine
Aber es läuft nicht, denn "Ich denke", dass der Grep versucht, statt des Schwanzes auf der Uhr zu laufen ...
Gibt es eine Möglichkeit, so etwas zu tun?
watch -n 1 (tail -n 200 log/site_dev.log | grep Doctrine)
Danke vielmals!
Umgeben Sie den Befehl mit Anführungszeichen
watch -n 1 'tail -n 200 log/site_dev.log | fgrep Doctrine'
Ich bin vielleicht falsch, aber würde das nicht einfacher sein (übereinstimmende Protokollzeilen anzeigen, wenn sie hinzugefügt werden), dann einfacher?
tail -f -n 200 log/site_dev.log | grep Doctrine
Sie können den Befehl in Anführungszeichen setzen:
watch -n 1 'tail -n 200 log/site_dev.log | fgrep Doctrine'
Wenn der Befehl Anführungszeichen enthält, können Sie eine andere Art von Anführungszeichen mit entsprechender Escape-Anweisung verwenden:
watch -n 1 $'tail -n 200 log/site_dev.log | fgrep \'Doctrine.*\''
Wenn Sie versuchen, etwas wirklich Kluges zu tun, fügen Sie den Befehl oder die Befehle in ein Skript ein und verwenden Sie das mit watch:
cat <<EOF >/tmp/watch-command tail -n 200 $(pwd)/log/site_dev.log | fgrep Doctrine EOF chmod +x /tmp/watch-command watch /tmp/watch-command
Stellen Sie sicher, dass Sie ggf. relative Pfade berücksichtigen.