Automatisk Eksekvering af Kommandoer ved Filændringer på Linux og macOS: Trin-for-Trin Guide

Hvordan kan en kommando automatisk eksekveres, når en fil ændres, uden at skulle trykke Enter manuelt, og samtidig kunne se programmets output i terminalen?

For at automatisk eksekvere en kommando ved filændringer uden manuel indgriben kan du bruge inotify-tools på Linux eller fswatch på macOS, hvilket også viser output i terminalen.

Hvordan kan en kommando automatisk eksekveres, når en fil ændres, uden at skulle trykke Enter manuelt, og samtidig kunne se programmets output i terminalen?

For at opnå dette kan du bruge værktøjer som inotify-tools på Linux eller fswatch på macOS. Disse værktøjer overvåger filsystemændringer og kan automatisk eksekvere en kommando, når en fil ændres. Her er en trin-for-trin guide til, hvordan du kan gøre dette:

1. Installation af nødvendige værktøjer

  • Linux: Installer inotify-tools ved at køre sudo apt-get install inotify-tools
  • macOS: Installer fswatch ved at køre brew install fswatch

2. Brug af inotify-tools på Linux

For at overvåge en fil og automatisk eksekvere en kommando, kan du bruge inotifywait fra inotify-tools:

while inotifywait -e modify /path/to/your/file; do
  your-command
done

Dette script vil overvåge filen for ændringer og eksekvere your-command hver gang filen ændres.

3. Brug af fswatch på macOS

For at opnå det samme på macOS, kan du bruge fswatch:

fswatch -o /path/to/your/file | while read f; do
  your-command
done

Dette script vil overvåge filen og eksekvere your-command hver gang filen ændres.

4. Se programmets output i terminalen

Begge metoder vil vise output fra your-command direkte i terminalen, så du kan se resultaterne med det samme.

Eksempel

Her er et konkret eksempel, hvor vi overvåger en fil kaldet example.txt og eksekverer en Python-script, når filen ændres:

# Linux
while inotifywait -e modify example.txt; do
  python3 your_script.py
done

# macOS
fswatch -o example.txt | while read f; do
  python3 your_script.py
done

Med disse metoder kan du effektivt overvåge filændringer og automatisk eksekvere kommandoer uden manuel indgriben, samtidig med at du kan se outputtet direkte i terminalen.