[英]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 Wildberg和user1934428的建議,這里有一個使用&
的解決方案,僅供記錄:
for task_file in *.task
do
sh ${task_file} &
done
wait
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.