Linux编程基础:第4章Shell编程 课后习题 |
您所在的位置:网站首页 › shell命令的功能 › Linux编程基础:第4章Shell编程 课后习题 |
《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 |