天天看点

sh pipeline

sh的保留字如下:

! { } case do

done elif else esac fi

for if then until while

原来{ 和 }都是保留字,这样我真正明白它们前后必须有空格的原因。

Pipelines

Note that unlike some other shells, sh executes each process in the pipe-

line as a child of the sh process. Shell built-in commands are the

exception to this rule. They are executed in the current shell, although

they do not affect its environment when used in pipelines.

Pipelines中的每个命令(内部命令除外)都在一个单独的进程中运行,即便是内部命令

不在新进程运行,它也不会影响当前进程的环境。

这样,运行下面的程序需要特别留意这一点了:

a | b | { ...; ...; }

最后一个大括号中定义的变量,在括号外边是未定义的,这一点如果不注意

会比较困惑。呵呵。sh pipeline