问题 单项选择题

在UNIX操作系统中,若用户键入的命令参数的个数为1时,执行cat$1命令;若用户键入的命令参数的个数为2时,执行cat>>$2<$1命令。请将下面所示的Shell程序的空缺部分补齐。
case ______ in
1)cat $1;;
2)cat>>$2<$1;;
echo ’default...’
esaC

A.$$

B.$@

C.$#

D.$*

答案

参考答案:C

解析:[要点解析] 选项A的“$$”是一个Shell状态变量,用于表示当前命令的进程标识数。
选项B的“$@”是一个Shell参数变量,用于表示所有位置参量,即相当于$1,$2,$3……。当用双引号转义时,”$@”还是能分解成多个参数。
选项C的“$#”是一个Shell参数变量,用于表示位置参数的个数,但不包括命令名。
选项D的“$*’’是一个Shell参数变量,用于表示所有位置参量,即相当于$1,$2,$3……。当用双引号转义时,“"$*"则合并成一个参数。
由于试题给出了“用户键入的命令参数的个数”关键信息,因此该空缺处的正确答案是$#。
本试题中使用case语句实现编程中多选一的控制结构。cat命令用于查看文件内容,从键盘读取数据,合并文件等。格式:cat [-b][-A][-E][-T][-n][-s][-v]文件名。例如,“$cat-n file”命令将显示出file文件中的行号。

多项选择题
名词解释