簡體   English   中英

從文件列表中並行運行 shell 個腳本

[英]Running shell scripts in parallel from a list of files

我有一個腳本列表,它們在做自己的事情(它們實際上是讀取修改和寫入文件的 Rscripts),如下所示:

## Script 1
echo "1" > file1.out
## Script 2
echo "2" > file2.out
## Script 3
echo "3" > file3.out

這些保存在不同的腳本中,如下所示:

## Writing script 1
echo "echo \"1\" > file1.out" > script1.task
## Writing script 2
echo "echo \"2\" > file2.out" > script2.task
## Writing script 3
echo "echo \"3\" > file3.out" > script3.task

有沒有辦法使用文件名並行運行所有這些腳本? 在一個循環中,它看起來像這樣:

for task_file in *.task
do
  sh ${task_file}
done

如果你只有 3 個答案是使用 &。

但是如果你有 1000s:

seq 10000 | parallel 'echo {} > file{}.out'

根據Andre Wildberguser1934428的建議,這里有一個使用&的解決方案,僅供記錄:

for task_file in *.task
do
  sh ${task_file} &
done
wait

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM