平时工作中,主要任务是改代码,然后才是写代码,很多代码可以复用,很多分析可以批量进行。今天介绍一下在Linux下批量执行代码的方法。复杂的可以用snakemake编写定义规则,简单的用shell直接写就可以。
示例代码
想要实现的目标:
1, 有0-9, 10个文件夹
2, 依次进入文件夹, 执行run.sh
脚本, 因为运行时间长, 想用nohup run.sh &
放到后台, 同时保存运行日志nohup.out
1for i in [0-9]*; #1
2 do
3 cd $i; #2
4 nohup run.sh &; #2
5 cd ../;
6done
报错
因为我中间用了&
符号, 提前进入后台, 无法进入下一个循环。
如果不用&
, 那么就是顺序执行,不能批量进行。
1for i in [0-9]*; #1
2 do
3 cd $i; #2
4 nohup run.sh; #2
5 cd ../;
6done