Shell-Script

同時對多個文件執行相同的命令

  • September 21, 2016

我需要同時為每個文件分別執行相同的命令。

我試過了

for file in *.txt; do ./script <"$file"; done

但它會啟動第一個並等到它完成然後轉到下一個。

我需要一起啟動它們。

如果script不需要使用者的任何輸入,您可以使用 shell 的作業處理功能在後台執行它

for file in *.txt; do ./script <"$file" & done

當您附加&到命令時,它會在後台執行。在手冊頁(或您的首選 shell)中查找作業控制以獲取詳細資訊。bash

ls *.txt > list
cat list | parallel './script {}' &
wait

首先列出文件中的txtlist文件。parallel命令將script在後台對每個文件名執行。最後一個wait命令將等待所有後台作業完成,然後您可以繼續執行其他命令。

引用自:https://unix.stackexchange.com/questions/311249