问题
单项选择题
在Linux操作系统中,若用户键入的命令参数的个数为1时,执行cat $ 1命令;若用户键入的命令参数的个数为2时,执行cat>>$2<$1命令。请将下面所示的Shell程序的空缺部分补齐。
case (48) in
1)cat $1;;
2)cat>>$2<$1;;
*)echo'default...'
esac
A.$ $
B.$ @
C.$ #
D.$ *
答案
参考答案:C
解析:在Linux操作系统中,Shell变量分为参数变量和状态变量两类,见表6-27。
表6-27 Shell 变 量
Shell参数变量 | Shell状态变量 | ||
$0 | 命令后,可用它获得调用该程序的名字 | $? | 上一个命令的返回代码,如果命令执行成功则返回真值,否则返回假值 |
$1,$2… | 表示Shell程序的位置参数 | $$ | 表示当前命令的进程标识数 |
$# | 表示位置参数的个数,不包括命令名 | $! | 表示Shell执行的最近后台进程标识数 |
$* | 表示所有位置参量,即相当于$1、$2、$3 | $@ | 与“$*”基本相同,但当用双引号转义时,“$@”还是能分解成多个参数,但“$*”则合并成一个参数 |
$- | 表示Shell标志位组成的字符串,可以由Shell传递来,或由set命令设置 |
本试题中使用case语句实现编程中多选一的控制结构。cat命令用于查看文件内容,从键盘读取数据,合并文件等。格式:cat[-b][-A][-E][-T][-n][-s][-v]文件名。例如,“$ cat-n file”命令将显示出file文件中的行号。