arthur 发表于 2012-7-30 16:32:56

Cshell scriptring cook book [pdf]

Cshell脚本编程手册





Contents
1 Introduction 1
2 Further Reading 1
3 How to use this manual 2
4 Conventions 2
5 Running a script 3
5.1 Shell selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
5.2 Making a script executable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
5.3 Executing a script by name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
5.4 Using aliases to run a script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
5.5 Removing aliases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
5.6 Executing a script in the current process . . . . . . . . . . . . . . . . . . . . . . 5
5.7 Package aliases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
6 Some simple examples 6
7 Shell Variables 8
7.1 Assigning scalar values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
7.2 Assigning arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
7.3 Using the values of variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
7.4 Special characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
7.5 Prompting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
7.6 Script arguments and other special variables . . . . . . . . . . . . . . . . . . . . . 11
7.7 Prede ned variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
8 Executing a Starlink Application 13
8.1 Parameter les and the graphics database . . . . . . . . . . . . . . . . . . . . . . 14
8.2 How to test whether or not a Starlink task has failed . . . . . . . . . . . . . . . . 14
9 Passing information between Starlink applications 16
9.1 Parsing text output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
9.2 Via Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
10 Arithmetic 17
10.1 Integer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
10.2 Logical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
10.3 Floating Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
10.4 Intrinsic Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
11 String Processing 24
11.1 String concatenation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
11.2 Obtain the length of a string . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
11.3 Find the position of a substring . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
11.4 Extracting a substring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
11.5 Split a string into an array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
11.6 Changing case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
11.7 String substitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
11.8 Formatted Printing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2 Dealing with Files 30
12.1 Extracting parts of lenames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
12.2 Process a Series of Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
12.2.1 NDFs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
12.2.2 Wildcarded lists of les . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
12.2.3 Exclude the .sdf for NDFs . . . . . . . . . . . . . . . . . . . . . . . . . . 32
12.2.4 Examine a series of NDFs . . . . . . . . . . . . . . . . . . . . . . . . . . 33
12.3 Filename modi cation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
12.3.1 Appending to the input lename . . . . . . . . . . . . . . . . . . . . . . . 34
12.3.2 Appending a counter to the input lename . . . . . . . . . . . . . . . . . 34
12.3.3 Appending to the input lename . . . . . . . . . . . . . . . . . . . . . . . 34
12.4 File operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
12.5 Creating text les . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
12.5.1 Writing a script within a script . . . . . . . . . . . . . . . . . . . . . . . . 37
12.6 Reading lines from a text le . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
12.7 Reading tabular data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
12.7.1 Finding the number of elds . . . . . . . . . . . . . . . . . . . . . . . . . . 38
12.7.2 Extracting columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
12.7.3 Selecting a range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
12.7.4 Choosing columns by name . . . . . . . . . . . . . . . . . . . . . . . . . . 39
12.8 Reading from dynamic text les . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
12.9 Discarding text output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
12.10Obtaining dataset attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
12.10.1Obtaining dataset shape . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
12.10.2Available attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
12.10.3Does the dataset have variance/quality/axis/history information? . . . . . 44
12.10.4Testing for bad pixels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
12.10.5Testing for a spectral dataset . . . . . . . . . . . . . . . . . . . . . . . . . 45
12.11FITS Headers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
12.11.1Testing for the existence of a FITS header value . . . . . . . . . . . . . . 46
12.11.2Reading a FITS header value . . . . . . . . . . . . . . . . . . . . . . . . . 46
12.11.3Writing or modifying a FITS header value . . . . . . . . . . . . . . . . . . 46
12.12Accessing other objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
12.13De ning NDF sections with variables . . . . . . . . . . . . . . . . . . . . . . . . . 47
3 Loop a speci ed number of times 48
4 UNIX-style options 49
5 Debugging scripts 51
6 Breaking-in 51
7 Longer recipes 52
17.1 Recipe for masking and background- tting . . . . . . . . . . . . . . . . . . . . . 52
页: [1]
查看完整版本: Cshell scriptring cook book [pdf]