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"