Linux编程基础:第4章Shell编程 课后习题

您所在的位置:网站首页 shell命令的功能 Linux编程基础:第4章Shell编程 课后习题

Linux编程基础:第4章Shell编程 课后习题

2023-07-27 23:47| 来源: 网络整理| 查看: 265

《Linux编程基础》黑马程序员/编著 清华大学出版社

目录

一、填空题

二、判断题

三、单选题

四、简答题

1、分析以下脚本代码:

2、写出shell脚本中while循环与until循环的基本格式,并简述这两种循环结构的区别。

五、编程题

1、编写shell脚本实现如下菜单界面:

2、编写shell脚本,实现批量添加用户功能,要求如下:

①用户名格式统一,为相同字符串加数字编号,如qwe1~qwe9;

②用户密码与用户名相同。

3、编写shell脚本,实现批量删除用户功能,其中用户的用户名格式统一(如qwe1~qwe9)。

一、填空题

1、Linux系统中的输入输出分为三类,分别为:(标准输入)、标准输出和(标准错误)。

2、当执行gcc –c hello.c 2 > file命令时,系统会将执行命令时的(错误信息)输出到文件file中。

【解析】Linux系统为其中的输入输出文件设置了默认编号:标准输入文件的编号是0,标准输出文件的编号是1,标准错误文件的编号是2。因此本题目中的“2 > file”是将执行命令时的错误信息重定向到文件file中。

3、执行shell脚本的方法有两种,假设现有一脚本文件test.sh,则执行该脚本的方式分别为:(chmod +x test.sh;./test.sh)和(sh test.sh)。

【解析】执行该脚本的方法有两种:一种是将脚本本身作为一个可执行文件,若想执行该脚本程序,需要确保该文件可执行,但创建的文件一般默认没有可执行权限,因此需要先使用chmod命令,来修改文件的权限;另一种方法是将该脚本文件作为一个参数,通过Shell解释器对其进行解析。

4、Shell中变量没有明确的类型,变量值都以字符串的形式存储,但Shell中也可能进行一些算术运算。Shell中的运算一般通过两个命令:(let)和(expr)实现。

5、条件判断是条件语句的核心,Shell中通常使用(test)命令或([)命令对条件进行判断,这两个命令判断的条件可以是命令或脚本。

6、Shell脚本中常用的条件语句有三种,分别为:(if条件)语句、(select)语句和(case)语句。

二、判断题

1、cat < file命令的功能是将cat命令打印的结果重定向到文件file中。   (×)

【解析】file

【解析】标准错误输出文件编号为2,;错误重定向符号与输出重定向符号相同,即都为“>”和“>>”,使用“>”将以覆盖的方式将错误信息写到file文件;使用“>>”将以追加的方式将错误信息写到file文件。因此正确选项为D。

3、若需要在当前终端上顺序执行命令,则应使用下列哪个符号连接?   (A)

A、;

B、|

C、&&

D、||

【解析】连接命令,并使命令顺序执行的连接符为“;”。此外,“|”是管道连接符,该命令的功能是将一个命令的输出作为另外一个命令的输入;“&&”是逻辑与连接符,连接符两边的命令执行有逻辑与关系,只有前一个命令执行成功时,后面的命令才会执行;“||”是逻辑或连接符,只有前一个命令执行失败时,后面的命令才会执行。

四、简答题 1、分析以下脚本代码: #!/bin/bash sum=1 for(( i=1; i /dev/null; then echo "$username" | passwd --stdin $username if [ $? -eq 0 ]; then echo "add $username successful" else echo "$username added, change password failure " fi else echo "add $username failure " fi done

执行脚本,脚本的执行结果如下,其中输入的前缀为qwe:

-----add 9 users----- please input a string: qwe 更改用户 qwe1 的密码 。 passwd: 所有的身份验证令牌已经成功更新。 add qwe1 successful 更改用户 qwe2 的密码 。 passwd: 所有的身份验证令牌已经成功更新。 add qwe2 successful 更改用户 qwe3 的密码 。 passwd: 所有的身份验证令牌已经成功更新。 add qwe3 successful 更改用户 qwe4 的密码 。 passwd: 所有的身份验证令牌已经成功更新。 add qwe4 successful 更改用户 qwe5 的密码 。 passwd: 所有的身份验证令牌已经成功更新。 add qwe5 successful 更改用户 qwe6 的密码 。 passwd: 所有的身份验证令牌已经成功更新。 add qwe6 successful 更改用户 qwe7 的密码 。 passwd: 所有的身份验证令牌已经成功更新。 add qwe7 successful 更改用户 qwe8 的密码 。 passwd: 所有的身份验证令牌已经成功更新。 add qwe8 successful 更改用户 qwe9 的密码 。 passwd: 所有的身份验证令牌已经成功更新。 add qwe9 successful

附:shell脚本中对空格要求比较严格,若脚本运行失败,可先检测代码中是否有多余空格。

3、编写shell脚本,实现批量删除用户功能,其中用户的用户名格式统一(如qwe1~qwe9)。

分析题目:

删除的用户名采用统一格式,因此可使用“user00+数字”的方式实现,其中前缀由用户手动输入,后缀的数字可通过循环逐次递增。

脚本实现如下:

#!/bin/bash #delusers echo "------del 9 users------" echo "please input a string:" read user for i in {1..9}; do username=$user$i userdel -r $username if [ $? -eq 0 ]; then echo "del $username successful" else echo "del $username failure" fi done exit

脚本执行结果如下:

------del 9 users------ please input a string: qwe del qwe1 successful del qwe2 successful del qwe3 successful del qwe4 successful del qwe5 successful del qwe6 successful del qwe7 successful del qwe8 successful del qwe9 successful



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3