Führen Sie mehrere Bash-Befehle auf der Ausgabe von find aus

Führen Sie mehrere Bash-Befehle auf der Ausgabe von find aus

Ich möchte einige Befehle mit der Option find -exec ausführen, bin mir aber nicht sicher, was mit diesem Code nicht stimmt. Derzeit verarbeitet er nur das erste Suchergebnis und bleibt dann hängen. Ich verwende Bash in OS X.

read -e DIRECTORY

find $DIRECTORY -type f -name '*.mov' -exec sh -c '
  file="$0"
  echo "Processing $file ..."
  modmovie -notrack "Timecode Track" $file -save-in-place
  read line </dev/tty
' {} \;

Antwort1

Mir ist dieses Beispiel eingefallen und wie andere in den Kommentaren gesagt haben, ist es das, read line </dev/ttywas dazu führt, dass auf Benutzereingaben gewartet wird.

#!/bin/bash

find db -type f -name '*.jpg' -exec sh -c '
file="$0"
echo "hi"
echo "$file"
read line </dev/tty
' {} \;

Die Ausgabe meines Skripts

hi
db/db1440/gothamgardenxmas21440.jpg
     <---- I hit enter here
hi
db/db1440/unveiling11440.jpg
     <---- I hit enter here    
hi
db/db1440/astronomer21440.jpg
     <---- I hit enter here
...

verwandte Informationen