shell属羊代码linux,操作系统原理实验一(一)

写在开头开头

近日新型冠状肺炎很严重,学校也开不了学了,在MOOC上学习操作系统原理时

看到MOOC上推荐完成的实验题,在这里记录一下。

本篇给出 1,2两题的解析,3,4在下一篇中分享

3.1 (实验目的:熟悉Windows批处理编程)在Windows环境下,编写一个批处理程序(算命大师.bat),程序运行后,输入:出生年月日(例如20000731)。系统输出你的属相和星座,例如:你属兔,狮子座。

3.2 (实验目的:熟悉Linux脚本编程)在Linux环境下,编写一个Shell脚本理程序,能统计给定文本文件的单词数,行数。

3.3 (实验目的:了解操作系统生成的概念,熟悉Linux内核编译和裁剪)在Ubuntu或Fedora环境下裁剪和编译Linux内核,并启用新的内核。源代码下载网址:www.kernel.org.

-------3.3的戳这里:操作系统原理实验一(二)

3.4 (实验目的:熟悉Linux系统调用原理)在Ubuntu或Fedora环境下为Linux内核增加1-3个新的系统调用,并启用新的内核,编写一个应用程序测试新增加的系统调用是否能正确工作。源代码下载网址:www.kernel.org.

-------3.4的戳这里:操作系统原理实验一(三)

----------------------------------------------------------------------------------------------------

3.1Windows批处理编程

运行效果

5ec986b202422bad0944e5bf6f4cdd45.png

代码展示

@echo off

REM 声明采用UTF-8编码

@chcp 65001

:while

set /p birthday=请输入出生年月日(格式如20000412):

set year=%birthday:~0,4%

set month=%birthday:~4,2%

set day=%birthday:~6,2%

set /a yy=%year%%%12

if %yy%==0 ( set bb=你属猴,

) else if %yy%==1 ( set bb=你属鸡,

) else if %yy%==2 ( set bb=你属狗,

) else if %yy%==3 ( set bb=你属猪,

) else if %yy%==4 ( set bb=你属鼠,

) else if %yy%==5 ( set bb=你属牛,

) else if %yy%==6 ( set bb=你属虎,

) else if %yy%==7 ( set bb=你属兔,

) else if %yy%==8 ( set bb=你属龙,

) else if %yy%==9 ( set bb=你属蛇,

) else if %yy%==10 ( set bb=你属马,

) else if %yy%==11 set bb=你属羊,

if %month%==04 (

if %day% leq 19 ( echo %bb%白羊座 )else echo %bb%金牛座

) else if %month%==05 (

if %day% leq 20 ( echo %bb%金牛座 )else echo %bb%双子座

) else if %month%==06 (

if %day% leq 21 ( echo %bb%双子座 )else echo %bb%巨蟹座

) else if %month%==07 (

if %day% leq 22 ( echo %bb%巨蟹座 )else echo %bb%狮子座

) else if %month%==08 (

if %day% leq 22 ( echo %bb%狮子座 )else echo %bb%处女座

) else if %month%==09 (

if %day% leq 22 ( echo %bb%处女座 )else echo %bb%金牛座

) else if %month%==10 (

if %day% leq 23 ( echo %bb%天秤座 )else echo %bb%天蝎座

) else if %month%==11 (

if %day% leq 22 ( echo %bb%天蝎座 )else echo %bb%射手座

) else if %month%==12 (

if %day% leq 21 ( echo %bb%射手座 )else echo %bb%摩羯座

) else if %month%==01 (

if %day% leq 19 ( echo %bb%摩羯座 )else echo %bb%水瓶座

) else if %month%==02 (

if %day% leq 18 ( echo %bb%水瓶座 )else echo %bb%双鱼座

) else if %month%==03 (

if %day% leq 20 ( echo %bb%双鱼座 )else echo %bb%白羊座

)

echo.

ping -n 2 127.0.0.1 >nul

goto while

pause

简单解释一下

@echo off 是为了 此语句以下的命令语句不会在输出屏显示

chcp 65001 是声明采用UTF-8编码 (因为我在notepad++编辑这个程序时使用的是UTF-8编码,而控制台默认是使用GBK,所以如果没有这句的话,中文输出可能会有问题)

set /p birthday= -->进行读入赋值时 要加/p 会将输入的字符串赋值给birthday

set year=%birthday:~0,4% -->时从 birthday的第0位开始向后截取4个字符, 并赋给year

set /a yy=%year%%%12

进行运算赋值时 要加/a %year% 代表year指代的值 %% 表示取余运算

%day% leq 19 leq是小于等于的意思 另外:EQU - 等于 NEQ - 不等于 LSS - 小于 GTR - 大于 GEQ - 大于或等于

ping -n 2 127.0.0.1 >nul是造成一个1秒的sleep()

:while 与 go while 就是让程序循环运行

3.2Linux脚本编程

运行效果

6e06205e12db52dbd0c8d07c582fe6e8.png

代码展示

#!/bin/sh

echo 请输入要查询的文档名称

read filename

echo $filename所含单词数为

cat $filename | wc -w

echo $filename所含行数为

cat $filename | wc -l

简单解释一下

read filename 读入输入的字符串并赋值给filename

cat $filename | wc -w

cat 读取打开filename指代的文件并通过“|”通道传给后面

wc -w 是查取 变量filename 所指代的文件的单词数

cat $filename | wc -l

wc -l 是查取 变量filename 所指代的文件的行数

写在结尾

希望以上可以帮到你!

如有错误,或不同想法,欢迎指出,互相学习共同进步!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值