Good Advice & Practice of Shell Programming

C H A P T E R 2

Standard Function Library
After writing many scripts, I realized there were several functions and routines I was
using repeatedly. Sometimes I would write the code for these duplicated functions again,
and other times I would copy and paste the code from an earlier script. But the best coding
practice is to keep a file around that contains all of your already tested and working
functions. This creates a scriptwriter’s toolbox, or, in programming speak, a library. With
a library in place, many of the tools you need often are close at hand and you don’t have
to code the functions anew each time you need them. This chapter shows you how to set
up a standard function library and how to utilize the library in your scripts.

From : Expert shell scripting. Thank to the great author.

Shell expression operators. Need to review frequently.

String Comparison Result
string1 = string2 True if the strings are equal
string1 != string2 True if the strings are not equal
-n string True if the string is not null
-z string True if the string is null (an empty string)
Arithmetic Comparison Result
expression1 -eq expression2 True if the expressions are equal
expression1 -ne expression2 True if the expressions are not equal
expression1 -gt expression2 True if expression1 is greater than expression2
expression1 -ge expression2 True if expression1 is greater than or equal to
expression2
expression1 -lt expression2 True if expression1 is less than expression2
expression1 -le expression2 True if expression1 is less than or equal to
expression2
! expression True if the expression is false, and vice versa
File Conditional Result
-d file True if the file is a directory
-e file True if the file exists. Note that historically the -e option
has not been portable, so -f is usually used.
-f file True if the file is a regular file
-g file True if set-group-id is set on file
-r file True if the file is readable
-s file True if the file has nonzero size
-u file True if set-user-id is set on file
-w file True if the file is writable
-x file True if the file is executable

软件开发过程 节选自 Python tutorial.

软件开发过程

现在,我们已经走过了编写一个软件的各个环节。这些环节可以概括如下:

1. 什么(分析)
2. 如何(设计)
3. 编写(实施)
4. 测试(测试与调试)
5. 使用(实施或开发)
6. 维护(优化)