《Linux编程基础》第四章习题

一、填空题

  1. Linux 系统中的输入输出分为三类,分别为:(标准输入)、标准输出和(标准错误)。
  2. 当执行 gcc -c hello.c 2>file 命令时,系统会将执行命令时的(错误)输出到文件 file 中。
  3. 执行 Shell 脚本的方法有两种,假设现有一个脚本文件 test.sh,则执行该脚本的方式分别为:(chmod +x test.sh ./test.sh)和(sh test.sh)。
  4. Shell 中的变量没有明确的类型,变量值都以字符串的形式存储,但 Shell 中也可能进行一些算术运算,Shell 中的运算一般通过两个命令实现:(let)和(expr)。
  5. 条件判断是条件语句的核心,Shell 中通常使用(test)命令或([)命令对条件进行判断,这两个命令判断的条件可以是命令或脚本。
  6. Shell 脚本中常用的条件语句有三种,分别为:(if)语句、(select)语句和(case)语句。

二、判断题

  1. cat<file 命令的功能是将 cat 命令打印的结果重定向到文件 file 中。(×)
  2. Shell 的原意为“壳”,它包裹在内核之外,处于硬件与内核之间。其主要功能为接收用户输入的命令,找到命令所在位置,并加以执行。(×)
  3. Shell 最重要的功能是命令解释,Linux 系统中的所有可执行文件都可以作为 Shell 命令来执行。(√)
  4. 使用 & 连接符连接的命令,其前后命令的执行遵循逻辑与关系,只有该连接符之前的命令执行成功时,后面的命令才会被执行。(√)
  5. 在 Shell 编程中,使用 echo 命令可打印字符串。若当前脚本中定义了变量 var=“hello itheima”,则语句 echo ‘$var’ 打印的结果为 hello itheima。(×)

三、单选题

  1. 分析以下脚本代码:

    #!/bin/sh
    var="hello itheima"
    echo "$var"
    echo '$var'
    exit 0
    

    从以下选项中选出正确的执行结果。(B)

    A.

    hello itheima
    hello itheima
    

    B.

    hello itheima
    $var
    

    C.

    $var
    hello itheima
    

    D.

    $var
    $var
    
  2. 从以下四个选项中,选出能成功将标准错误重定向到 file 文件中的选项。(C)

    A. gcc hello.c 2<file

    B. gcc hello.c 1<file

    C. gcc hello.c 2>file

    D. gcc hello.c 2>>file

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

    A. ;

    B. |

    C. &&

    D. ||

四、简答题

  1. 分析以下脚本代码:

    #!/bin/bash
    sum=1
    for((i=1; i<=10; i++))
    do
        sum='expr $sum + $i'
        echo $sum
    done
    echo "sum1~10=$sum"
    

    写出此脚本的执行效果。

    2
    4
    7
    11
    16
    22
    29
    37
    46
    56
    sum1~10=56
    
  2. 写出 Shell 脚本中 while 循环与 until 循环的基本格式,并简述这两种循环结构的区别。

    # while循环
    while [ 表达式 ]
    do
      ...
    done
    
    # until循环
    until [ 表达式 ]
    do
      ...
    done
    

    当 while 循环的条件为真时执行循环中的命令;当 until 循环中的条件为假时执行循环中的命令。

五、编程题

  1. 编写 Shell 脚本实现如下菜单界面:

    Menu
    1) exit
    2) edit file
    3) date
    4} calc
    #?
    
    #!/bin/sh
    echo "Menu"
    select _command in "exit" "edit file" "date" "calc"
    do
      echo "$_command"
      break
    done
    exit 0
    
  2. 编写 Shell 脚本,实现批量添加用户功能,要求如下:

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

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

    #!/bin/sh
    for((i=1; i<=9; i++))
    do
      name=qwe$i
      sudo useradd $name
      echo $name | sudo passwd --stdin $name
    done
    exit 0
    
  3. 编写 Shell 脚本,实现批量删除用户功能,其中用户的用户名格式统一(如 qwe1~qwe9)。

    #!/bin/sh
    for((i=1; i<=9; i++))
    do
      sudo userdel qwe$i
    done
    exit 0
    

猜你喜欢

转载自blog.csdn.net/ShadowBurn/article/details/87894905