Ich habe das folgende Ruby-Skript, foo
mit dem ich beobachte fswatch
:
#!/usr/bin/env ruby
puts "hello world!"
Auf der Kommandozeile sieht die Ausgabe so aus:
➜ ~/w/s/g/m/todo master ✗ fswatch bin/* | xargs -I {} bundle exec {}
hello world!
^C
Das scheint alles gut zu sein, und wie erwartet frage ich mich, wie ich sagen kann, fswatch
dass der Bildschirm vor dem Ausführen gelöscht werden soll bundle exec
. Oder eine Art Bash-Skript schreiben, um dasselbe Ziel zu erreichen, oder meine Dateien überwachen und meine Befehle ausführen, aber vorher den Bildschirm löschen?
Antwort1
Das musste ich vor Kurzem selbst herausfinden. Versuchen Sie:
fswatch bin/* | xargs -I {} sh -c 'clear && bundle exec {}'
Bearbeiten: Das vollständige Löschen des Scrollback-Puffers hängt vom tatsächlich verwendeten Terminalemulatorprogramm ab. macOS
Sie können beispielsweise Folgendes tun:
- Terminal: Der Menübefehl ist
Edit > Clear to Start
oder ⌘K, Sie könnten alsoautomatisieren Sie das in Applescriptund rufen Sie an stattclear
- iTerm: unterstützt praktischeproprietäre Escape-Codes- einfach ersetzen
clear
durchprintf "\033]1337;ClearScrollback\007"