linux下shell编程课程设计,Linux下shell编程实例

1. 推断一文件是不是块或字符设备文件。假设是将其复制到 /dev 文件夹下

read -p "input a file:" filename

if [ -b $filename -o -c $filename ]

then

cp $filename /dev/

fi

2.编写一个脚本。进行简单的减法运算。要求提示输入变量

#!/bin/bash

read -p "input a number:" num1

read -p "input another number:" num2

let "num3=num1-num2"

echo $num3

3.把某个文件夹下的文件扩展名改为bat,再以时间为文件名称压缩打包存放到某个文件夹。

#!/bin/bash

for file in $(ls $1)

do

new_file=${file%.*}.bat

mv ./$1/$file ./$1/$new_file

tmp=$(date +%y)

tar cvf ./$tmp.tar ./$1

done

4.推断一个数是不是完数。

打印出1-1000之间的完数。

完数就是约数的和等于自身2倍的数。(6,28,496)

#!/bin/bash

sub()

{

i=1;

sum=0;

while [ $i -le $num ]

do

let "m=num%i"

if [ $m -eq 0 ]

then

let "sum=sum+i"

fi

let "i=i+1"

done

let "a=2*num"

if [ $a -eq $sum ]

then

echo $num

fi

}

num=1

while [ $num -le 1000 ]

do

sub

let "num = num+1"

done

5.在某个目录下查找含有指定字符串的文件

#!/bin/bash

for file in $(ls $2)

do

bname=$(grep -l $1 $2/$file)

basename $bname

done

6.加入一个新组为class1,然后加入属于这个组的30个用户,username的形式为stdxx,当中xx从01到30。

#!/bin/bash

groupadd class1

for i in {9901..9930}

do

xx=$(echo $i | sed 's/99//');

useradd -g class1 std$xx -p ""

done

7.设计一个Shell程序。在/userdata文件夹下建立50个文件夹。即user1~user50,并设置每一个文件夹的权限,其中其它用户的权限为:读。文件全部者的权限为:读、写、运行;文件全部者所在组的权限为:读、运行。

#!/bin/bash

for ((i=1;i<=50;i++))

do

mkdir -p /usrdata/user$i

cd /usrdata

chmod 754 user$i

done

8. 写一个脚本,利用循环计算10的阶乘

#!/bin/sh

factorial=1

for a in `seq 1 10`

do

factorial=` expr $factorial * $a `

done

echo "10! = $factorial"

9.删除当前文件夹下大小为0的文件

#/bin/bash

for filename in `ls`

do

if test -d $filename

then b=0

else

a=$(ls -l $filename | awk '{ print $5 }')

if test $a -eq 0

then rm $filename

fi

fi

done

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/465186.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Pku 2774] 字符串(六) {后缀数组的构造}

{ 从这一篇开始介绍后缀数组 一个强大的字符串处理工具 可以先研读罗穗骞的论文 后缀数组——处理字符串的有力工具 再行阅读本文 本文仅作参考和补充 } 字符串的后缀很好理解 譬如对于字符串"aabaaaab" 后缀有{"b","ab","aab","…

使用ReflectionToStringBuilder实现toString方法

org.apache.commons.lang.builder.ReflectionToStringBuilder是commons-lang里的一个类。 import org.apache.commons.lang3.builder.ReflectionToStringBuilder; Overridepublic String toString() {return ReflectionToStringBuilder.toString(this); } 如果需要排除某些字段…

linux下I2C驱动发送IO时序,笔记四:linux下IO口模拟实现I2C协议

一、i2c总线是什么&#xff1f;1、i2c总线是一种物理总线及实实在在的总线&#xff0c;通过板子pcb等图能看到。2、i2c总线是一种主从结构。3、i2c总线是一种通信协议。4、i2c总线是两线制半双工串行总线&#xff1a;两线制&#xff1a;数据线(SDA)——>数据传输、时钟线(SC…

rails3异步发邮件

actionmailer 3.0 结合ar_mailer_rails3 异步发送邮件3 次投票jerry 分享于 3 个月 前, 0 条回复, 244 次浏览Share|actionmailer 3.0 的用法有所改进&#xff0c;并结合ar_mailer_rails3做异步邮件的发送&#xff0c;是比较方便的一种选择&#xff0c;把邮件都交给后台任务来发…

我见过的极品代码bug

程序员写代码有bug是很难避免的&#xff0c;也是因为程序员的bug存在&#xff0c;才让另一个职业有了更好的发展&#xff0c;那就是软件测试行业。但是程序员写bug&#xff0c;对于自己肯定是一件非常难忘的事情。我记得我在之前做一个TP固件升级的功能&#xff0c;也就是开机的…

Linux监控服务并主动重启

Linux查询后台进程&#xff0c;如果没有进程号&#xff0c;则重启服务&#xff1a; #!/bin/sh basepath$(cd dirname $0; pwd) while true doprocnumps -ef|grep "服务名称"|grep -v grep|wc -lif [ $procnum -eq 0 ]then#启动命令echo date %Y-%m-%d date %H:%M:%S …

c语言数组传递技术作用特点,C语言笔试题总结3

4. static有什么用途&#xff1f;(请至少说明两种)1.限制变量的作用域2.设置变量的存储域7. 引用与指针有什么区别&#xff1f;1) 引用必须被初始化&#xff0c;指针不必。2) 引用初始化以后不能被改变&#xff0c;指针可以改变所指的对象。2) 不存在指向空值的引用&…

双一流大学毕业的我,应该何去何从?

内卷时代&#xff0c;万物皆可卷&#xff01;什么是内卷&#xff0c;比如&#xff0c;你在电影院看电影&#xff0c;有一个人站起来了&#xff0c;那么就会有第二个人站起来&#xff0c;没一会儿所有的人就站起来了&#xff0c;但是和坐着相比&#xff0c;站着看电影体验感很差…

[Error]SyntaxError: unindent does not match any outer indentation level

刚开始学习Python 解析器用的IDLE&#xff0c;Python3.1&#xff0c;照着某个入门教程敲代码&#xff0c;敲到if的时候&#xff0c;总是出现这个错误 >>> if x<0:x0elif x0:SyntaxError: unindent does not match any outer indentation level 因为x0这行回车后&am…

go

我放弃Python转Go语言的9大理由&#xff08;附优秀书籍推荐&#xff09; https://www.jb51.net/article/126998.htm 转载于:https://www.cnblogs.com/charlieLeo/p/9512713.html

【原创】从 列表的重复 到 用sum展开二层嵌套列表将子元素合并

转载请注明出处&#xff1a;https://www.cnblogs.com/oceanicstar/p/9517159.html★像R语言里头有rep函数可以让向量的值重复&#xff0c;在python里面可以直接对列表用乘法让列表进行重复注&#xff1a;这里生成的重复列表是个新列表&#xff08;我们可以打印id查看一下&#…

c语言找出最大值和最小值并按降序排输出,大学一年级下学期C语言程序设计实验报告答案 完整版...

for(j7;j>i;j--)//将插入点以后的元素顺序往后移一位 a[j1]a[j];a[i]number;//插入数据 printf(\输出改变后的数组\\n\for(i0;i<8;i)//输出插入后仍有序的数组 printf(\ }(3)写一个3 x 5矩阵的转置程序&#xff0c;输出其原矩阵的值和转置以后的结果。提示&#xff1a;1)…

如何正确的使用微信公众号

我发现很多人可能不知道怎么在微信公众号里面查找自己想要的内容。所以制作了两个视频第一个是如何搜索文章&#xff0c;通过关键字搜索可以找到很多自己想要的内容还有通过微信公众号查找资料&#xff0c;这个是我最近刚增加的功能。~就这两件事~喜欢C/C语言或者正在学习C/C语…

shell替换程序里的代码

需求&#xff1a; 扩展名类型: .php .html .shtml .inc 将http://market.pk.com/files/union/ad_union_5.js替换为http://market.pk.com/files/union/union_5.jshttp://market.pk.com/files/advertisement/27/ad_27.js替换http://market.pk.com/files/upload/27/27.js http://m…

接上电就工作的单片机

对于手边的一盒STC单片机&#xff0c;测试一下它们使用相同的ISP方案在下载过程中是否都可以按照相同的方式完成程序的下载。同时对它们建立各自的元器件库&#xff0c;以便于后期的应用。通过这个实验&#xff0c;看到STC的单片机使用起来真实简捷明了&#xff0c;接上电就工作…

c语言编辑的库存管理软件,C语言课程设计,商品库存管理系统怎么做啊?

我教你。。#include#include#include#includeint count0;struct commodity{int id; /*商品编号*/int number; /*库存数量*/int price; /*单价*/char name[20]; /*商品名称*/char indate[9]; /*入库时间*/char deadline[9]; /*有效日期*/}a[100];void page_title(char *menu_ite…

Ogg入门--基本命令

1.切换到oracle用户&#xff0c;进入到goldengate的安装目录。 2.查看进程的运行状况&#xff1a; GGSCI (pxpaddb1) 1> info allProgram Status Group Lag at Chkpt Time Since ChkptMANAGER RUNNING EXTR…

华数联手海信升级互联网电视平台

据媒体报道&#xff0c;继百视通与康佳合作推出新的互联网电视平台之后&#xff0c;华数联手海信也升级了其互联网电视平台&#xff0c;以迎接即将到来十一黄金周期间的互联网电视大战。华数以数字电视和宽带接入起家&#xff0c;被业界誉为引领三网融合业务创新的黑马&#xf…

我的高中好友

很少写高中同学相关的文章&#xff0c;愿意是现在的生活上和原来的同学交集很少&#xff0c;他们的工作和我做的工作也有很大的差距。再一个是距离远&#xff0c;节假日不能互相走动。昨晚&#xff0c;我开直播。那时候是凌晨1点&#xff0c;然后我看到我一个高中的好朋友进了我…

类的初始化顺序详解

前言 先声明一个常识&#xff0c;类域和局部变量初始化的差异如下&#xff0c; 局部变量不初始化会报错&#xff1a; 类中属性(也称域)不赋初值&#xff0c;默认为0&#xff0c;如果是引用默认为空。 正题 一、类中属性按照定义的顺序初始化 我们声明一个Child类&#xff0c…