免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 35633 | 回复: 36

[学习共享] 整理了几道Shell编程实例,针对新手! [复制链接]

论坛徽章:
0
发表于 2014-04-10 14:18 |显示全部楼层
整理了几道Shell编程实例,针对新手!
1. 在/home目录中创建一百个目录,目录名称依次为a1……a100.
2.  编写一个脚本,自动将用户主目录下所有小于5KB的文件打包成XX.tar.gz.(提示:用ls,grep,find等命令,文件一般指普通文件)
3.写一个程序,可以将/et/passwd的第一列取出,而且每一列都以一行字符串“the 1 account is “root””来显示
4. 编写一个程序,他的作用是先查看一下/root/test/logical这个名称是否存在,若不存在,则创建一个文件。使用touch来创建,创建完成后离开;如果存在的话,判断该名称是否为文件,若为文件则将之删除后新建一个目录。文件名为loglical,之后离开;如果存在的话,而且该名称为目录,则删除此目录。
5.编写一个shell脚本,从键盘读入10个数,显示最大值和最小值。
6.编写一个脚本,打印任何数的乘法表。如输入3则打印
  1*1=1
  2*1=2 2*2=4
  3*1=3 3*2=6 3*3=9
7.编写一个脚本,输入自己的生日时间(YYYYMMDD),计算还有多少天多少个小时是自己的生日。

都很简单,只是记录一下,以后可能用得到。

评分

参与人数 1信誉积分 +5 收起 理由
substr函数 + 5 不错啊 赞一个!

查看全部评分

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
发表于 2014-04-10 15:05 |显示全部楼层
是自己整理的吗,不错啊。

论坛徽章:
0
发表于 2014-04-10 15:41 |显示全部楼层
网上找到的,拿来共享一下。


   

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
发表于 2014-04-10 15:47 |显示全部楼层
本帖最后由 huang6894 于 2014-04-10 15:57 编辑

我居然闲得全写了。。。。囧
1、
  1. for i in `seq 100`; do mkdir /home/a$i; done
复制代码
2、
  1. find ~ -size -5 -type f -maxdepth 1|xargs tar zcvpf backup.tar.gz
复制代码
3、
  1. awk -F':' '{print "the 1 account is "$1}' /etc/passwd
复制代码
4、
  1. if [ ! -e "/root/test/logical" ]; then touch "hh";  elif [ -f "/root/test/logical" ];then rm /root/test/logical && mkdir logical&&exit;elif  [ -d "/root/test/logical" ];then rm /root/test/logical; fi
复制代码
5、
  1. => cat hh.sh
  2. #! /bin/bash
  3. printf "Enter 10 number: "
  4. read
  5. biggest=$(echo "$REPLY" | tr ' ' '\n' | sort -rn | head -n1)
  6. smallest=$(echo "$REPLY" |  tr ' ' '\n' | sort -rn | tail -n1)
  7. echo "Biggest number:  $biggest"
  8. echo "Smallest number:  $smallest"
  9. --------------------------------------------------
  10. => sh hh.sh
  11. Enter 10 number: 1 2 3 4 5 6 7 8 9 0
  12. Biggest number:  9
  13. Smallest number:  0
复制代码
6、勿喷,现在不想想东西
  1. awk -vstr='3' 'BEGIN{for(i=1;i<=str;i++){for(p=1;p<=i;p++)printf p"*"i"="p*i"\t";printf "\n"}}'
复制代码
7、
  1. => sh hh.sh
  2. Input your birthday(YYYYmmdd):19930302
  3. There is : 325 days 8 hours.
  4. => cat hh.sh
  5. read -p "Input your birthday(YYYYmmdd):" date1
  6. m=`date --date="$date1" +%m`   
  7. d=`date --date="$date1" +%d`   
  8. date_now=`date +%s`      
  9. y=`date +%Y`            
  10. birth=`date --date="$y$m$d" +%s`     
  11. internal=$(($birth-$date_now))      
  12. if [ "$internal" -lt "0" ]; then           
  13.     birth=`date --date="$(($y+1))$m$d" +%s`      
  14.     internal=$(($birth-$date_now))      
  15. fi
  16. awk -vinternal=$internal 'BEGIN{d=int(internal/60/60/24);h=int((internal-24*60*60*d)/3600);print "There is : "d" days "h" hours."}'

复制代码

评分

参与人数 1信誉积分 +10 收起 理由
substr函数 + 10 赞一个!很给力!

查看全部评分

论坛徽章:
0
发表于 2014-04-10 17:20 |显示全部楼层
本帖最后由 gxyyq 于 2014-04-10 17:24 编辑

huang6894  太厉害了,我刚写完第一道题,答案都找到了。
for i in `seq 100`; do mkdir /home/a$i; done  我试了一下,如果我的电脑权限级别高的话,需要加for i in `seq 100`; do  sudo mkdir /home/a$i; done

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
发表于 2014-04-10 17:56 |显示全部楼层
回复 5# gxyyq


   写的有点烂,期望大神们给出他们的答案学习,谢谢谢谢~

论坛徽章:
30
申猴
日期:2014-04-10 09:43:532015年亚洲杯纪念徽章
日期:2015-03-20 14:40:232015亚冠之阿尔纳斯尔
日期:2015-06-02 18:59:042015亚冠之阿尔希拉尔
日期:2015-06-30 15:22:572015亚冠之大阪钢巴
日期:2015-07-20 10:44:332015亚冠之阿尔纳斯尔
日期:2015-10-28 14:57:5215-16赛季CBA联赛之新疆
日期:2015-12-25 10:18:45黑曼巴
日期:2016-06-26 21:39:5315-16赛季CBA联赛之山西
日期:2016-07-25 21:54:2715-16赛季CBA联赛之北京
日期:2016-10-27 12:07:2315-16赛季CBA联赛之八一
日期:2017-07-07 16:39:0915-16赛季CBA联赛之吉林
日期:2017-09-04 12:14:43
发表于 2014-04-10 17:59 |显示全部楼层
回复 4# huang6894
2题用size有点不妥吧,他是计算的占用块的大小吧,不是计算的文件的真实的大小吧!


   

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
发表于 2014-04-10 18:11 |显示全部楼层
huang6894 发表于 2014-04-10 15:47
我居然闲得全写了。。。。囧
1、2、3、4、5、6、勿喷,现在不想想东西7、

第一题
  1. mkdir -p /home/a{1..100}
复制代码

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
发表于 2014-04-10 18:16 |显示全部楼层
本帖最后由 huang6894 于 2014-04-10 18:20 编辑

回复 7# zxy877298415


    就是觉得很麻烦。。。
ls -l ~|awk '{if($5 < 5060) print $0}'|grep ^[^d]

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
发表于 2014-04-10 18:16 |显示全部楼层
回复 8# rdcwayx


    niubility
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP