각 파일에 대해 동시에 동일한 명령을 개별적으로 실행해야 합니다.
나는 노력했다
for file in *.txt; do ./script <"$file"; done
그러나 첫 번째 작업을 시작하고 완료될 때까지 기다린 후 다음 작업으로 이동합니다.
함께 시작해야합니다.
답변1
script
사용자 입력이 필요하지 않은 경우 셸의 작업 처리 기능을 사용하여 백그라운드에서 실행할 수 있습니다.
for file in *.txt; do ./script <"$file" & done
명령에 연결하면 &
백그라운드에서 실행됩니다 . 찾다직업 통제bash
(또는 선호하는 쉘) 매뉴얼 페이지에서 자세히 알아보세요.
답변2
ls *.txt > list
cat list | parallel './script {}' &
wait
먼저 list
file.txt 파일을 나열합니다. parallel
명령은 script
각 file_name에 대해 백그라운드에서 실행됩니다. 마지막 wait
명령은 추가 명령을 계속하기 전에 모든 백그라운드 작업이 완료될 때까지 기다립니다.