【答案解析】[要点解析] 在UNIX操作系统中,Shell变量分为参数变量和状态变量两类,其各自常见的变量见表8-11。
表8-11 Shell定义变量 Shell参数变量 | Shell状态变量 | $0 | 命令名,可用它获得调用该程序的名字 | $? | 上一个命令的返回代码,如果命令执行成功则返回真值,否则返回假值 | $1,$2…… | 表示Shell程序的位置参数 | $$ | 表示当前命令的进程标识数 | $# | 表示位置参数的个数,不包括命令名 | $! | 表示Shell执行的最近后台进程标识数 | $* | 表示所有位置参量,即相当于$1,$2,$3…… | $- | 表示Shell标志位组成的字符串,可以由Shell传递来,或由set命令设置 | $@ | 与$*基本相同,但当用双绰号转义时,"$@"还是能分解成多个参数,但"$*"则合并成一个参数 | |
Shell变量也可分为用户定义变量、系统定义变量和Shell定义变量等3种类型。其中,用户定义变量必须以字母或下划线开始,可以包含字母、下划线和数字的字符序列。可使用赋值语句对其进行设置初值或重置值;系统定义变量$LOGNNAME的含义是用户的注册名,系统定义变量$HOME的含义是用户主目录名。
Shell命令echo将它的实参写到标准输出上;echo可用于在命令文件中产生诊断信息,向管道发送已知数据以及显示环境变量的内容。
综上分析,实现显示用户主目录以及当前命令的进程标识符的Shell程序是选项D。