Linux期末复习编程题

  • 0.先说说编程需要注意的点吧
  • 1.if条件语句
  • 2.乘法口诀表
  • 3.自动删除50个账号
  • 4.菜单设计

0.先说说编程需要注意的点吧

  1. 如果是if 条件时,需要注意每个字符都要用空格隔开,比如if [ $a = $b ] # 注意需要空格隔开
  2. 如果是赋值语句,就不需要用空格隔开,比如result=$[a+b] # 注意等号两边不能有空格

1.if条件语句

if condition
thencommand1 command2...commandN
elsecommand
fi

实例

a=10
b=20
if [ $a == $b ]
thenecho "a 等于 b"
elif [ $a -gt $b ]
thenecho "a 大于 b"
elif [ $a -lt $b ]
thenecho "a 小于 b"
elseecho "没有符合的条件"
fi

2.乘法口诀表

#!/bin/bash                          #这行必须加
for((i=1;i<=9;i++))                  #表示i从1到9
dofor((j=1;j<=i;j++))                #表示j从1到idoecho -n "$j*$i=$[$i*$j]  "  #注意后面两个空格还有一个-n选项doneecho ""
done

3.自动删除50个账号

#!/bin/bash
i=1                                                    # i从1开始
while [ $i -le 50 ]                                 # $i小于等于50的话继续执行循环
doif [ -n "`cat /etc/passwd | grep user$i`" ]       # 这句就是现在/etc/passwd中查找# 有没有存在user$i,这里的$i是1到# 50,例如passwd里面有user20,则当# $i为20的时候 # cat /etc/passwd | grep user20# 会找到对应的一行内容,这个时候字符# 串的长度不为0,所以-n选项会判断为true# 则执行then语句thensudo userdel -r user${i}                   # 接着以user20为例子,则删除user20这个用户# 当前用户若是root则不需要写sudo这个命令echo "success delete user$i"             # 输出"成功删除user20"else  echo "not found user$i"                       # 当我们没查找到对应的user时# 输出"不存在user+编号"fii=$[$i+1]                                       # i需要进行+1操作,注意是"i="而不是"$i="
done

因为上面不太美观,于是看下面:

#!/bin/bash
i=1
while [ $i -le 50 ]
doif [ -n "`cat /etc/passwd | grep user$i`" ]thensudo userdel -r user${i}echo "success delete user$i"elseecho "not found user$i"fii=$[$i+1]
done

4.菜单设计

这题也需要根据题目需求来写,只能给定大概的模板!具体看题意如何说明。

#!/bin/bash
echo "Welcome to my soft system!" # 这句话没什么卵用,就是写着玩
while true                          # 让程序进入死循环
doecho "1. option1"               # 这4句就是菜单echo "2. option2"echo "3. option3"echo "0. exit"read option                      # 读取键盘的输入并存入到option变量中# 因为我们这里数字都是1个字符,所以可以使用-n1选项if [ $option -eq 0 ]          # 如果变量option的值是0,则使用break语句推出循环thenbreakficase $option in                   # case条件分支语句,贼好用,这里是用来判断option的值1)                              # 如果option值为1echo "exec option1"          # 执行"操作1",这里的操作根据题目要求定义;;                         # 类似于c语言中case的break语句,加就是了,下面几句类似2)echo "exec option2";;3)echo "exec option3";;*)                               # 这一句类似于c语言的case中的default,默认选项echo "unknow option!"       # 由于没有准确定义默认操作是什么,所以可以随便输出点什么东西;;esac# clear                            # 这个是清屏用的,可以每次都清一次屏幕,不然很乱
done

上面这是模板,现在我们来一个实例:

  1. 代表cd命令
  2. 代表pwd命令
  3. 代表touch命令
  4. 代表rm命令
  5. 代表ls命令
#!/bin/bash
curDir=`pwd`                 # 获取当前路径
while true                      # 死循环
doecho "1. cd command"        # 命令说明echo "2. pwd command"echo "3. touch command"echo "4. rm command"echo "5. ls command"echo "0. exit"read option                   # 键入操作if [ $option -eq 0 ]      # 如果操作值为0,则退出thenbreakficase $option in             # case分支语句1)read -e -p "input dir:" dir       # 提示需要输入一个目录名cd $dir                            # 尝试进入目录if [ $? -eq 0 ]                 # $?代表获取shell执行后的代码,0是成功,1是失败then                           # 成功则需要判断一系列操作if [ ${dir:0:1} == "/" ]  thencurDir=$direlsecurDir=${curDir}"/"${dir}fiecho "success in $dir"else                          # 否则失败echo "not found $dir"fi;;2)echo $curDir                 # 操作2是输出当前目录;;3)read -p "input filename:" filename    # 操作3创建文件,需要一个文件名sudo touch ${curDir}"/"${filename}   # 创建文件操作if [ $? -eq 0 ]                     # 如果成功,则$?为0thenecho "success $filename"      # 输出成功elseecho "error $filename"          # 输出失败fi;;4)read -e -p "input remove filename:" filename  # 操作4是删除文件,需要输入一个文件名# 这里使用-e选项代表可以使用tab键补全sudo rm -r ${curDir}"/"${filename}              # 删除文件操作if [ $? -eq 0 ]                                 # 成功,$?为0thenecho "success $filename"elseecho "error $filename"fi;;5)ls $curDir                                     # 操作5输出当前目录的路径;;*)echo "error code";;esacdone

Linux期末复习编程题相关推荐

  1. 湖北汽车工业学院Linux期末复习

    Linux期末复习 一.填空题(每空1分共20分) 1.Linux桌面系统(2个空) 桌面系统:它控制桌面图标和目录的出现位置.桌面和目录菜单的内容,以及控制在桌面图标.目录和菜单上进行鼠标操作所产生 ...

  2. Python课程期末考试编程题自动批卷原理与实现模板

    适用场合: 1)Python程序设计课程上机或实验作业自动批阅. 2)Python程序设计课程期末考试编程题的自动评分. 设计思路: 1)编写考试试卷程序文件,定义好每个试题的函数接口和预期功能,详细 ...

  3. 【数据挖掘】期末复习模拟题(暨考试题)

    数据挖掘-期末复习试题 挑战全网最全题库 单选题 多选题 判断题 填空题 程序填空 sigmoid 曼哈顿距离 泰坦尼克号 披萨价格预测 鸢尾花DBSCN密度聚类 决策树 购物表单-关联规则 火龙果- ...

  4. 大一下c语言期末考试编程题,大一上期末C语言编程题

    大一上期末C语言编程题 (6页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 11.90 积分 用公式 π/4 = 1-1/3+1/5-1/7--,编程序 ...

  5. 【数据结构与算法】期末复习刷题日寄Part02

    刷题日记?刷题日寄! 这学期的数据结构课程快要结束,开始复习刷题,量不求多,但求坚持每日更新!

  6. 【数据结构与算法】期末复习刷题日寄Part01

    刷题日记?刷题日寄! 这学期的数据结构课程快要结束,开始复习刷题,量不求多,但求坚持每日更新!

  7. Linux期末复习考前走一走——何绍华Linux操作系统第3版

    文章目录: 老师要求掌握 扩展 第一章 初识Linux 第二章 安装Linux操作系统 第三章 图形化界面与命令行 1.Linux图形化管理系统主要由以下两部分构成 2.了解KDE桌面组件 3.了解G ...

  8. linux shell期末测试,LINUX期末复习---SHELL编程

    一.SHELL简介 ①什么是SHELL 答:一个作为用户与LINUX系统之间的操作接口程序,允许用户向操作系统输入需要执行的命令. 一种高级.解释性的程序语言. ②SHELL的种类 ③SHELL的执行 ...

  9. java 昵称1到32位字符_Java期末考试编程题复习

    在程序中定义Person类,为该类编写如下字段.构造器.访问器.修改器和相应的其他方法.(20分) <1>在Person类中定义两个字段: 私有访问权限,类型为String的name字段: ...

最新文章

  1. html在线热点工具,Heatmap.js 强大的 HTML5 画布 WEB 网页在线热点图插件 - 资源分享...
  2. android-解决 Android N 上 报错:android.os.FileUriExposedException
  3. 学习ansible playbook之前先了解下YAML语法
  4. 人工机器:基于视觉的机械手控制
  5. HDU 1003 Maxsum
  6. 源代码安装httpd服务器
  7. python3socket非阻塞在linux里无效_Linux下socket设置为非阻塞方式和fcntl系统调用
  8. ansile(2)模块之get_url
  9. 第一次个人项目【词频统计】——PSP表格
  10. Visual Studio中#includestdafx.h的作用
  11. 《机器学习实战笔记--第一部分 分类算法:决策树 3》
  12. IDC机房运维工程师需要具备哪些技能及素质
  13. linux下rtc时间不准,Linux中系统时间和RTC时间的关系
  14. 依旧乐观的李彦宏,十年寻光的百度AI
  15. Java实现扑克牌游戏(简易炸金花)
  16. JME3 官方教程翻译 - 自定义网格形状
  17. 二阶魔方复原算法推算-Part1
  18. 【转载】HTML5新特性浅谈
  19. php 随机获取字母,深入PHP获取随机数字和字母的方法详解
  20. 中国量化融业解金工计机计金领就指

热门文章

  1. getChars的用法
  2. 动态规划入门_数塔问题
  3. Android开发 - 设置DialogFragment全屏显示
  4. [XJOI]最大K段和 题解
  5. Docker 入门(Mac环境)- part 5 stacks
  6. ubuntu16.04下配置caffe无GPU
  7. 初学js----------一些API
  8. Django admin的一些有用定制
  9. 零基础入门NLP之搭建中文分词工具
  10. stm32系统滴答定时器使用