shell编程

shell编程
shell编程

第八章 shell编程

1. Linux 高效、灵活的系统管理离不开文本环境操作。vi 编辑器是Linux

系统中最常用的编辑器,使用文本编辑器具有的优点是(ABC)。

A.文字环境操作方式下可以高效地完成所有的任务;

B.可以比较容易地了解到Linux 的运作状况;

C.对于要求做服务器的主机,使用字符界面不用启动图形工作环境,大大地节省了系统资

源开销。

D.命令好记忆。

2. 操作系统怎样识别用户发出的指令呢?比如输入一个指令:ls –l ,操作系统怎么知道用户要列出文件信息呢?因此在操作系统与用户之间还要有一个界面,它可以将稍微人性化的语言或操作转换为操作系统能够识别的操作。在文本环境中,这个沟通的工作就是由(填空1)(英文)完成。它是命令语言、命令解释程序及程序设计语言的统称。

填空1:Shell

3. 下面实现输出重定向,将ls 命令的输出保存为文件 dir.out ,若该文件存在则予以取代。请完整程序。

student@Ubuntu:~$ls ( 填空1) dir.out

填空1:>

4. (填空1)用于将一系列的命令连接起来,也就是把前面命令的输出作为后面命令的输入。

管道的命令是“(填空2)”。

填空1:管道填空2:|

5. Shell脚本可以包含任意从键盘输入的Linux 命令。建立 Shell脚本的步骤与建立普通文本文件的步骤相同,利用编辑器( 如 vi) 进行程序录入和编辑加工,虽然脚本名没有什么限制,为了方便认识,还是建议脚本的后缀名最好为( D )。

A. exe B. doc C. c D. sh

6. 执行Shell脚本的方式包括( ABC )。

A. 输入重定向:即用输入重定向方式让 Shell从给定文件中读入命令行,并进行相应

处理。其一般形式为:bash< 脚本名

B. 以脚本名作为参数。其一般形式为:bash 脚本名

C. 将Shell脚本的权限设置为可执行,然后在提示符后输入脚本名直接执行。

7. 要使用环境变量或其他Shell变量,必须在变量名前加上一个

“( A )”符号而不能直接使用变量名。

A.$ B.# C.~

8. 环境变量(填空1)(英文)是用户主目录的全路径名。主目录是开始工作的位置,默认情况下普通用户的主目录为/home/用户名,root 用户的主目录为/root。

填空1:HOME

9. Shell从环境变量( C )中查找命令的目录列表。它是一个非常重要的Shell变量。该环境变量中包含有带冒号分界符的字符串,这些字符串指向包含所使用命令的目录。该环境变量中的字符串顺序决定了先从哪个目录查找。

A.HOME B.LOGNAME C.PATH D.LANG E.PWD F.SHELL

10. 下面环境变量(E )表示命令行中输入的所有参数串。

A.$# B.$? C.$$ D.$* E.$@ F.$0

11. 下面环境变量(B )表示上一条命令执行后的返回值。

A.$# B.$? C.$$ D.$* E.$@ F.$0

12. Shell变量比C语言中的变量简单得多,没有众多存储类及类型的限制,也不需要预先定义,然后才能赋值,可以在使用时“现定义、现赋值”。这种说法( A )。

A.正确B.错误

13. 用户定义的变量是最普通的Shell变量。变量名是以字母或下划线打头的字母、数字和下线线序列,并且大小写字母意义相同同。例如,dir与Dir是不同的变量。这与C语言中标识符的定义相同。变量名的长度不受限制。这种说法( B )。

A.正确B.错误

14. 在赋值语句中,赋值号“=”的两边( B )空格,否则在执行时会引起错误。

A.有B.没有

15.Shell字符串变量中,若有空格符可以使用双引号“"”或单引号“'”来将变量内容结合起来,但需要特别留意,( A )。

A.双引号内的特殊字符可以保有变量特性

B.单引号内的特殊字符可以保有变量特性

16.在程序中使用变量的值时,要在变量名前面加上一个符号“( C )”。这个符号告诉shell,要取出其后变量的值。

A.~ B.# C.$

1. Linux 高效、灵活的系统管理离不开文本环境操作。vi 编辑器是Linux

系统中最常用的编辑器,使用文本编辑器具有的优点是(ABC)。

A.文字环境操作方式下可以高效地完成所有的任务;

B.可以比较容易地了解到Linux 的运作状况;

C.对于要求做服务器的主机,使用字符界面不用启动图形工作环境,大大地节省了系统资

源开销。

D.命令好记忆。

2. 操作系统怎样识别用户发出的指令呢?比如输入一个指令:ls –l ,操作系统怎么知道用户要列出文件信息呢?因此在操作系统与用户之间还要有一个界面,它可以将稍微人性化的语言或操作转换为操作系统能够识别的操作。在文本环境中,这个沟通的工作就是由(填空1)(英文)完成。它是命令语言、命令解释程序及程序设计语言的统称。

填空1:Shell

3. 下面实现输出重定向,将ls 命令的输出保存为文件 dir.out ,若该文件存在则予以取代。请完整程序。

student@Ubuntu:~$ls ( 填空1) dir.out

填空1:>

4. (填空1)用于将一系列的命令连接起来,也就是把前面命令的输出作为后面命令的输入。

管道的命令是“(填空2)”。

填空1:管道

填空2:|

5. Shell脚本可以包含任意从键盘输入的Linux 命令。建立 Shell脚本的步骤与建立普通文本文件的步骤相同,利用编辑器( 如 vi) 进行程序录入和编辑加工,虽然脚本名没有什么限制,为了方便认识,还是建议脚本的后缀名最好为( D )。

A. exe

B. doc

C. c

D. sh

6. 执行Shell脚本的方式包括( ABC )。

A. 输入重定向:即用输入重定向方式让 Shell从给定文件中读入命令行,并进行相应

处理。其一般形式为:bash<脚本名

B. 以脚本名作为参数。其一般形式为:bash 脚本名

C. 将Shell脚本的权限设置为可执行,然后在提示符后输入脚本名直接执行。

7. 要使用环境变量或其他Shell变量,必须在变量名前加上一个

“( A )”符号而不能直接使用变量名。

A.$

B.#

C.~

8. 环境变量(填空1)(英文)是用户主目录的全路径名。主目录是开始工作的位置,默认情况下普通用户的主目录为/home/用户名,root 用户的主目录为/root。

填空1:HOME

9. Shell从环境变量( C )中查找命令的目录列表。它是一个非常重要的Shell变量。该环境变量中包含有带冒号分界符的字符串,这些字符串指向包含所使用命令的目录。该环境变量中的字符串顺序决定了先从哪个目录查找。

A.HOME

B.LOGNAME

C.PATH

https://www.360docs.net/doc/974760798.html,NG

E.PWD

F.SHELL

10. 下面环境变量(E )表示命令行中输入的所有参数串。

A.$#

B.$?

C.$$

D.$*

E.$@

F.$0

11. 下面环境变量(B )表示上一条命令执行后的返回值。

A.$#

B.$?

C.$$

D.$*

E.$@

F.$0

12. Shell变量比C语言中的变量简单得多,没有众多存储类及类型的限制,也不需要预先

定义,然后才能赋值,可以在使用时“现定义、现赋值”。这种说法( A )。

A.正确

B.错误

13. 用户定义的变量是最普通的Shell变量。变量名是以字母或下划线打头的字母、数字和下线线序列,并且大小写字母意义相同同。例如,dir与Dir是不同的变量。这与C语言中标识符的定义相同。变量名的长度不受限制。这种说法( B )。

A.正确

B.错误

14. 在赋值语句中,赋值号“=”的两边( B )空格,否则在执行时会引起错误。

A.有

B.没有

15.Shell字符串变量中,若有空格符可以使用双引号“"”或单引号“'”来将变量内容结合起来,但需要特别留意,( A )。

A.双引号内的特殊字符可以保有变量特性

B.单引号内的特殊字符可以保有变量特性

16.在程序中使用变量的值时,要在变量名前面加上一个符号“( C )”。这个符号告诉shell,要取出其后变量的值。

A.~

B.#

C.$

17. 用test命令进行条件测试。格式为:test expression或[expression]

例字符串测试。

student@Ubuntu:~$test 6 = 7

student@Ubuntu:~$echo $?

1

注意等号操作符两边( A )空格。

A.都要

B.都不要

18. 语句:student@Ubuntu:~$[-d /etc ]是( A )。

A. 用于判etc是不是目录

B. 用于判etc是不是普通文件

C. 用于判etc是不是只读文件

D. 用于判etc是不是可执行文件

19.在键盘上读取一个字符,然后根据字符的值来判断对错。

# !/bin/bash

echo -n "Please input the answer: "

read Input //从键盘读入数据

if[ $Input = y ]

then

echo "The answer is right"

elif[ $Input = n ]

then

echo "The answer is wrong"

else

echo "Bad Input."

fi

# end

请问等号操作符两边( A )空格。

A.都要

B.都不要

20.(2) 执行结果如下:

student@Ubuntu:~$bash testfor1.sh

The count is

0+1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21+22+23+24+25+26+27+28+29 +30+31+32+33+34+35+36+37+38+39+40+41+42+43+44+45+46+47+48+49+50+51+52+53+54+55+ 56+57+58+59+60+61+62+63+64+65+66+67+68+69+70+71+72+73+74+75+76+77+78+79+80+81+8 2+83+84+85+86+87+88+89+90+91+92+93+94+95+96+97+98+99+100

请问是下面的程序段( C )。

A.testfor1.sh

# !/bin/bash

let s=0

for (( i=1; i<=100; i=i+1 ))

do

let s=$s+$i

done

echo "The count is $s"

# end

B.testfor1.sh

# !/bin/bash

let s=0

for (( i=1; i<=100; i=i+1 ))

do

let s=s+i

done

echo "The count is $s"

C.testfor1.sh

# !/bin/bash

let s=0

for (( i=1; i<=100; i=i+1 ))

do

s=$s+$i

done

echo "The count is $s"

D. testfor1.sh

# !/bin/bash

let s=0

for (( i=1; i<=100; i=i+1 ))

do

s=s+i

done

echo "The count is $s"

21. 下面shell程序,求命令行中输入的数值组中的最大的数。

(1) 将文件存为maxvalue.sh

maxvalue.sh

# !/bin/bash

max()

{

while test $1

do

if test $maxvalue

then

if test $1 -gt $maxvalue

then

maxvalue=$1

fi

else

maxvalue=$1

fi

(填空1)

done

return $maxvalue

}

max (填空2)*

echo "Max Value is :$maxvalue"

# end

(2) 设置maxvalue.sh 为可执行,执行结果:

student@Ubuntu:~$./maxvalue.sh 1 2 3 7 8 6

Max Value is :8

请完整程序。填空1:shift 填空2:$

相关主题
相关文档
最新文档