find出力で複数のbashコマンドを実行する

find出力で複数のbashコマンドを実行する

find -execオプションを使用していくつかのコマンドを実行したいのですが、このコードに何が問題なのかわかりません。現在は、最初の検索結果のみを処理してから中断されます。私はOS Xでbashを使用しています。

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
' {} \;

ベストアンサー1

私がこの例を考え出した理由は、他の人がコメントで述べたように、これがread line </dev/ttyユーザー入力を待つことになるからです。

#!/bin/bash

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

私のスクリプトの出力

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
...

おすすめ記事