Sådan skriver du et bash-script til at vente på en fil i /tmp-mappen

Hvordan skrives et script, der venter på, at en fil (examplefile.txt) dukker op i /tmp-mappen, stopper programmet, når filen findes, og ellers sover, indtil filen er lokaliseret?

For at skrive et script, der venter på, at en fil dukker op i /tmp-mappen, kan du bruge et bash-script, der løbende tjekker for filens tilstedeværelse og sover i et bestemt tidsinterval, hvis filen ikke findes.

Sådan skrives et script, der venter på, at en fil (examplefile.txt) dukker op i /tmp-mappen

For at skrive et script, der overvåger en bestemt mappe og venter på, at en specifik fil dukker op, kan du bruge et simpelt bash-script. Scriptet vil løbende tjekke for filens tilstedeværelse og stoppe, når filen findes. Hvis filen ikke findes, vil scriptet sove i et bestemt tidsinterval, før det tjekker igen.

Trin-for-trin guide:

  1. Opret en ny fil til scriptet, f.eks. wait_for_file.sh.
  2. Åbn filen i en teksteditor.
  3. Indsæt følgende bash-script i filen:
#!/bin/bash

# Definer stien til filen, der skal overvåges
FILE_PATH="/tmp/examplefile.txt"

# Løkke, der kører indtil filen findes
while [ ! -f "$FILE_PATH" ]; do
  echo "Filen $FILE_PATH findes ikke. Venter..."
  sleep 5  # Sover i 5 sekunder før næste tjek
done

echo "Filen $FILE_PATH er fundet. Stopper scriptet."
  1. Gem og luk filen.
  2. Gør scriptet eksekverbart ved at køre følgende kommando i terminalen:
chmod +x wait_for_file.sh
  1. Kør scriptet ved at bruge følgende kommando:
./wait_for_file.sh

Dette script vil nu overvåge /tmp-mappen for filen examplefile.txt. Når filen dukker op, vil scriptet stoppe og udskrive en besked om, at filen er fundet.

Forklaring af scriptet:

  • #!/bin/bash: Angiver, at scriptet skal køres med bash-shell.
  • FILE_PATH="/tmp/examplefile.txt": Definerer stien til den fil, der skal overvåges.
  • while [ ! -f "$FILE_PATH" ]; do: Starter en løkke, der fortsætter, så længe filen ikke findes.
  • echo "Filen $FILE_PATH findes ikke. Venter...": Udskriver en besked, hvis filen ikke findes.
  • sleep 5: Sover i 5 sekunder, før den tjekker igen.
  • done: Afslutter løkken, når filen findes.
  • echo "Filen $FILE_PATH er fundet. Stopper scriptet.": Udskriver en besked, når filen er fundet, og stopper scriptet.