自動応答コマンド - 応答間で cp 操作を実行します。 【解除】

自動応答コマンド - 応答間で cp 操作を実行します。 【解除】

アイデアは、コマンドを実行したいのですが、処理するファイル名を要求し、処理が完了したらというイメージを出力し、次のファイルprediction.png名を尋ねるように進むということです。何千ものファイルがあるため、毎日手動で入力することはできません。ただし、すべてのファイル名を含む.txtファイルがあります。

だから私はbashスクリプトを書くのが好きです:

1-コマンドを実行します

2-ファイル名を尋ねると、txtファイルの最初の行を読みます。

3-プログラムはファイルを処理して画像を出力し、画像を別のディレクトリにコピーします(次のファイルを上書きしないように)。

4- 次に、次のことを要求し、同じことを行います。

プログラムはファイルを要求し、.txt ファイルが完了するまで自動的に終了します。

これまで私ができることは、ファイルを1つずつ読み、プログラムが要求したときに応答として渡すことだけです。

cat filenames.txt | ./program.sh

cp問題は、新しいファイルを処理する前に出力したいということです。

ベストアンサー1

program.sh引き続きファイルを作成し、ファイルがいつ完成するのかわからないため、一度だけ実行している間はこれを実行できないようです。

代わりに、filenames.txtの各行に対してプログラムを1回実行してください。

while IFS= read -r FILE; do # loop through files in filenames.txt
  echo "$FILE" | ./program.sh # run program once and end it with newline
  mv created_filename /some/other/location/${FILE}.ext; # move file
done < filenames.txt
  • mv代わりに使用するcpと、同じファイルシステムに移動する方が高速です。
  • 出力形式を変更します.ext(例.png:)。

おすすめ記事