- 博客(0)
- 资源 (8)
- 收藏
- 关注
shell高级编程实例(365例子)
Shell脚本高级编程教程,希望对你有所帮助。
Example 10-23. Using continue N in an actual task:
1 # Albert Reiner gives an example of how to use "continue N":
2 # ---------------------------------------------------------
3
4 # Suppose I have a large number of jobs that need to be run, with
5 #+ any data that is to be treated in files of a given name pattern in a
6 #+ directory. There are several machines that access this directory, and
7 #+ I want to distribute the work over these different boxen. Then I
8 #+ usually nohup something like the following on every box:
9
10 while true
11 do
12 for n in .iso.*
13 do
14 [ "$n" = ".iso.opts" ] && continue
15 beta=${n#.iso.}
16 [ -r .Iso.$beta ] && continue
17 [ -r .lock.$beta ] && sleep 10 && continue
18 lockfile -r0 .lock.$beta || continue
19 echo -n "$beta: " `date`
20 run-isotherm $beta
21 date
22 ls -alF .Iso.$beta
23 [ -r .Iso.$beta ] && rm -f .lock.$beta
24 continue 2
25 done
26 break
27 done
28
29 # The details, in particular the sleep N, are particular to my
30 #+ application, but the general pattern is:
31
32 while true
33 do
34 for job in {pattern}
35 do
36 {job already done or running} && continue
37 {mark job as running, do job, mark job as done}
38 continue 2
39 done
40 break # Or something like `sleep 600' to avoid termination.
41 done
42
43 # This way the script will stop only when there are no more jobs to do
44 #+ (including jobs that were added during runtime). Through the use
45 #+ of appropriate lockfiles it can be run on several machines
46 #+ concurrently without duplication of calculations [which run a couple
47 #+ of hours in my case, so I really want to avoid this]. Also, as search
48 #+ always starts again from the beginning, one can encode priorities in
49 #+ the file names. Of course, one could also do this without `continue 2',
50 #+ but then one would have to actually check whether or not some job
51 #+ was done (so that we should immediately look for the next job) or not
52 #+ (in which case we terminate or sleep for a long time before checking
53 #+ for a new job).
2018-09-23
Shell脚本100例(文本文件)
Linux脚本学习100例,包含以下10个文件:
Shell 脚本 100 例《一》
Shell 脚本 100 例《二》
Shell 脚本 100 例《三》
Shell 脚本 100 例《四》
Shell 脚本 100 例《五》
Shell 脚本 100 例《六》
Shell 脚本 100 例《七》
Shell 脚本 100 例《八》
Shell 脚本 100 例《九》
Shell 脚本 100 例《十》
2018-09-23
megacli-8.02.21-1-mdv2012.0.x86_64.rpm for CentOS 6
megacli-8.02.21-1-mdv2012.0.x86_64.rpm for CentOS 6
2017-01-14
MegaCli-8.04.07 for ESXI5
下载后,解压上传到ESXI主机的/tmp目录,使用客户端工具安装,esxcli.exe --server IP地址 software vib install -v /tmp/vmware-esx-MegaCli-8.04.07.vib
2017-01-14
Dell Openmanage for esxi5 7.2
下载解压后上传至ESXi主机/tmp目录,使用ESXI客户端工具VMware-vSphere-CLI安装,安装方法:esxcli.exe --server IP地址 software vib install -v /tmp/cross_oem-dell-openmanage-esxi_7.2.ESXi500-0000.vib
2017-01-14
Dell Openmanage for esxi 7.0
下载解压后上传至ESXi主机/tmp目录,使用ESXI客户端工具VMware-vSphere-CLI安装,安装方法:esxcli.exe --server IP地址 software vib install -v /tmp/cross_oem-dell-openmanage-esxi_7.0-0000.vib
2017-01-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人