Thizlinux 系统教程 Shell 经典实例.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Thizlinux 系统教程 Shell 经典实例

Thizlinux 系统教程 Shell 经典实例 ----------------Milo经典小shell 1 列目录树的shell 脚本如下:   #!/bin/sh   # dtree: Usage: dtree [any directory]   dir=${1:-.}   (cd $dir; pwd) find $dir -type d -print | sort -f | sed -e s,^$1,, -e /^$/d -e s,[^/]*/([^/]*)$,`----1, -e s,[^/]*/,| ,g 2 while中使用read (file是一个文件) cat file | while read line do echo $line echo :: Please input any key(s):c str4read= while true do chr4read=`dd if=/dev/tty bs=1 count=1 2/dev/null` str4read=$str4read$chr4read if [ $chr4read = ] ;then break; fi done echo :: |$str4read| done 3 将多个空格替换为字符 sed s/[ ][ ]*/ /g 如果空格与tab共存时用 sed -e s/[[:space:]][[:space:]]*/ /g filename 4用脚本实现分割文件 #!/bin/bash if [ $# -ne 2 ]; then echo Usage: split file size(in bytes) exit fi file=$1 size=$2 if [ ! -f $file ]; then echo $file doesnt exist exit fi #TODO: test if $size is a valid integer filesize=`/bin/ls -l $file | awk {print $5}` echo filesize: $filesize let pieces=$filesize/$size let remain=$filesize-$pieces*$size if [ $remain -gt 0 ]; then let pieces=$pieces+1 fi echo pieces: $pieces i=0 while [ $i -lt $pieces ]; do echo split: $file.$i: dd if=$file of=$file.$i bs=$size count=1 skip=$i let i=$i+1 done echo #!/bin/bash merge echo i=0 merge echo while [ $i -lt $pieces ]; merge echo do merge echo echo merge: $file.$i merge echo if [ ! -f $file.$i ]; then merge echo echo merge: $file.$i missed merge echo rm -f $file.merged merge echo exit merge echo fi merge echo dd if=$file.$i of=$file.merged bs=$size count=1 seek=$i merge echo let i=$i+1 merge echo done merge chmod u+x merge 5得到上月未日期,格式为YYYYMMDD get_lastday_of_lastmonth() { yy=`date +%Y` mm=`date +%m-1|bc` [ $mm -lt 1 ] mm=12;yy=`expr $yy - 1` aaa=`cal $mm $yy` dd=`echo $aaa|awk {print $NF}` echo $yy$mm$dd } print $NF的$NF是打印最后一个列。因为awk的内置变量NF是列的总数,而$NF就代表着最后一列 6 实现用backup或tar命令来做目录备份 需要保持两个目录当中的文件以及属组关系不变。子目录结构不变,通过管道控制tar和backup命令,不需要中间的archive,(考虑到速度以及空间的关系) (cd /source tar cf - .) |(cd /dest tar zxfp -) 偶没有 backup 命令,但是 tar 用管道可以, tar -cf - dir1 | ( cd dir2;

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档