Shell-Script
同時對多個文件執行相同的命令
我需要同時為每個文件分別執行相同的命令。
我試過了
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
首先列出文件中的txt
list
文件。parallel
命令將script
在後台對每個文件名執行。最後一個wait
命令將等待所有後台作業完成,然後您可以繼續執行其他命令。