zoukankan      html  css  js  c++  java
  • linux 下shell 编写脚本

    linux 下shell 编写脚本:
    1.程序结构练习:编写一个脚本,给定一个正整数,计算出这个数所有位的数字之和。
    例如:程序给定输入123,那么应该返回1+2+3=6。

    2.程序结构练习:编写一个脚本,给定一个正整数,反序输出这个这个数。
    例如:程序输入123,那么应该输出321.

    3.Linux命令+shell编程:编写一个程序,实现定时文件备份的功能。
    要求:
    1.备份某个目录下的所有文件
    2.对备份文件进行压缩
    3.生成合理的日志文件

    4.Shell下的gui(libnotify-bin)编程
    http://blog.mpathirage.com/2009/09/12/using-libnotify-in-ubuntu-9-04/
    要求:
    实现定时提醒功能,通过命令行参数设置提示时间和提醒内容

    5.Shell文本处理功能(sed和awk)
    1.打开sname和smark两个文件,查看文件内容。
    2.从sname中提取学生姓名(cut),显示如下:
    zhangsan
    lisi
    wangwu
    maliu
    3.合并两个文件的内容(join),输出如下:
    11 zhangsan 56
    12 lisi 78
    13 wangwu 98
    14 maliu 87
    4.小写字母转换成大写字母(tr)
    5.查看inventory文件,过滤到中间一行,得到第一行和第三行的数据。效果如下:
    cacke 10
    Pen 12
    floppy 5


    6.查看teaormilk文件,将每一行中的tea替换成milk。(sed)结果如下: 

    India’s milk is good.
    milk Red-Lable is good.
    milk is better than the coffee.
    7.查看personame文件,仅输出存在一行的数据(uniq)。结果如下:
    Hello I am vivek
    12333
    welcome
    to
    sai computer academy a’bad.
    what I still remember that name
    oaky!how are u ,luser
    what still I remember that name
    8.查看demo-file文件,要求仅仅输出该行中含有too的行(grep)。结果如下:
    cartoons are good
    especially toon like tom (cat)
    I too
    请高手们把程序给我写出来,会几个就写几个,谢谢。


    最佳答案 第一题
    #!/bin/bash
    declare -i a=$1
    declare -i sum=0
    while [ "$a" -ne "0" ]
    do
    sum=$sum+$a%10
    a=$a/10
    done
    echo "The result is $sum"
    第二题
    #!/bin/bash
    declare -i a=$1
    while [ $a -ne 0 ]

    do
    echo -n "$(($a%10))"
    a=$a/10
    done
    echo
    第三题
    脚本命名为backupdaily.sh
    在/etc/crontab里加入一行
    0 2 * * * root ~/backup/backupdaily.sh
    #!/bin/bash
    day=`date +%Y%m%d`
    tar -czf ~/backup/"$day".tar.gz ~/anydir
    echo "$day: tar -czf ~/backup/$day.tar.gz ~/anydir" >> ~/backup/backuplog
    第四题
    以前没用过,试了下,manpage里就那几个参数
    #例如提示“message” 持续三秒钟:
    #notify-send "message" -t 3000

    第五题
    大哥你也不给sname和smark的格式,字段位置我就瞎猜啦
    1.#cat sname ;cat smark
    2.#cat sname | cut -d ' ' -f 2
    3.#join -1 1 sname -2 1 smark
    4.#cat sname smark | tr "[a-z]" "[A-Z]"
    5 #cat inventory | cut -d ' ' -f 1,3
    6#cat teaormilk | sed 's/tea/milk/g'
    7#cat personame | sort | uniq -u
    8#cat demo-file | grep "too"

  • 相关阅读:
    依赖注入模式与反模式
    WPF异常——某个ItemsControl与它的项源不一致
    C# 3进化的数据访问之智能的编译器
    C# 2的重大改进之可空类型
    C# 1之外:构建于坚实基础上的新特性
    C# 1的核心基础之二——类型系统
    C# 1的核心基础之一——委托
    C#进化史
    单一职责原则
    HBase简介
  • 原文地址:https://www.cnblogs.com/hanxing/p/4060022.html
Copyright © 2011-2022 走看看