﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-C小加-随笔分类-Linux</title><link>http://www.cppblog.com/cxiaojia/category/19875.html</link><description>厚德 博学 求真 至善
The bright moon and breeze</description><language>zh-cn</language><lastBuildDate>Fri, 07 Sep 2012 03:30:56 GMT</lastBuildDate><pubDate>Fri, 07 Sep 2012 03:30:56 GMT</pubDate><ttl>60</ttl><item><title>一天一个shell实例（3）定时备份文件</title><link>http://www.cppblog.com/cxiaojia/archive/2012/09/07/189789.html</link><dc:creator>C小加</dc:creator><author>C小加</author><pubDate>Fri, 07 Sep 2012 03:00:00 GMT</pubDate><guid>http://www.cppblog.com/cxiaojia/archive/2012/09/07/189789.html</guid><wfw:comment>http://www.cppblog.com/cxiaojia/comments/189789.html</wfw:comment><comments>http://www.cppblog.com/cxiaojia/archive/2012/09/07/189789.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cxiaojia/comments/commentRss/189789.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cxiaojia/services/trackbacks/189789.html</trackback:ping><description><![CDATA[<div>   	 	 	 	  <p style="margin-bottom: 0cm">写一个备份文件的脚本，利用crontab定时执行。</p> <p style="margin-bottom: 0cm"><br /> </p> <p style="margin-bottom: 0cm">步骤如下：</p> <p style="margin-bottom: 0cm">1，设置备份目的目录</p> <p style="margin-bottom: 0cm">2，进入目的目录</p> <p style="margin-bottom: 0cm">3，获取时间，设置备份文件名</p> <p style="margin-bottom: 0cm">4，备份文件</p> </div><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">#</span><span style="color: #000000; ">!/</span><span style="color: #000000; ">bin</span><span style="color: #000000; ">/</span><span style="color: #000000; ">bash<br /><br />DIRNAME</span><span style="color: #000000; ">=</span><span style="color: #000000; ">`ls&nbsp;</span><span style="color: #000000; ">/</span><span style="color: #000000; ">root&nbsp;</span><span style="color: #000000; ">|</span><span style="color: #000000; ">&nbsp;grep&nbsp;bak`&nbsp; #</span><span style="color: #000000; ">1</span><span style="color: #000000; "><br /><br /></span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;[&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">z&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">$DIRNAME</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;]&nbsp; #</span><span style="color: #000000; ">2</span><span style="color: #000000; "><br />then<br />mkdir&nbsp;</span><span style="color: #000000; ">/</span><span style="color: #000000; ">root</span><span style="color: #000000; ">/</span><span style="color: #000000; ">bak&nbsp; #</span><span style="color: #000000; ">3</span><span style="color: #000000; "><br />fi<br /><br />cd&nbsp;</span><span style="color: #000000; ">/</span><span style="color: #000000; ">root</span><span style="color: #000000; ">/</span><span style="color: #000000; ">bak&nbsp; #</span><span style="color: #000000; ">4</span><span style="color: #000000; "><br /><br />YY</span><span style="color: #000000; ">=</span><span style="color: #000000; ">`date&nbsp;</span><span style="color: #000000; ">+%</span><span style="color: #000000; ">y`&nbsp;&nbsp; #</span><span style="color: #000000; ">5</span><span style="color: #000000; "><br />MM</span><span style="color: #000000; ">=</span><span style="color: #000000; ">`date&nbsp;</span><span style="color: #000000; ">+%</span><span style="color: #000000; ">m`<br />DD</span><span style="color: #000000; ">=</span><span style="color: #000000; ">`date&nbsp;</span><span style="color: #000000; ">+%</span><span style="color: #000000; ">d`<br />etc</span><span style="color: #000000; ">=</span><span style="color: #000000; ">_etc<br /><br />BACKETC</span><span style="color: #000000; ">=</span><span style="color: #000000; ">$YY$MM$DD$etc.tar.gz&nbsp; #</span><span style="color: #000000; ">6</span><span style="color: #000000; "><br />tar&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">zcvf&nbsp;$BACKETC&nbsp;</span><span style="color: #000000; ">/</span><span style="color: #000000; ">etc&nbsp; #</span><span style="color: #000000; ">7</span><span style="color: #000000; "><br />echo&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">fileback&nbsp;finished!</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br /></span></div><div>   	 	 	 	  <p style="margin-bottom: 0cm">#1：获取root/bak字符串</p> <p style="margin-bottom: 0cm">#2：-z选项判断是否为空</p> <p style="margin-bottom: 0cm">#3：如果为空就创建目录</p> <p style="margin-bottom: 0cm">#4：进入该目录</p> <p style="margin-bottom: 0cm">#5：获取当前时间</p> <p style="margin-bottom: 0cm">#6：设置备份文件名</p> <p style="margin-bottom: 0cm">#7：将/etc目录下所有文件打包备份</p> <p style="margin-bottom: 0cm">         &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; -z 用gizp压缩和解压缩文件，若加上此选项创建的压缩包，解压的时候也许要加上此选项</p> <p style="margin-bottom: 0cm">         &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; -c 创建新的包</p> <p style="margin-bottom: 0cm">         &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; -v 详细报告tar处理文件的信息</p> <p style="margin-bottom: 0cm">         &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; -f 使用压缩文件或设备，该选项通常事必选的</p> </div><br /><br /><div>   	 	 	 	  <p style="margin-bottom: 0cm">定时执行脚本需要修改etc中的 crontab文件</p> </div><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">root@Notebook</span><span style="color: #000000; ">-</span><span style="color: #000000; ">PC:</span><span style="color: #000000; ">/</span><span style="color: #000000; ">etc#&nbsp;vi&nbsp;crontab<br /><br />#&nbsp;</span><span style="color: #000000; ">/</span><span style="color: #000000; ">etc</span><span style="color: #000000; ">/</span><span style="color: #000000; ">crontab:&nbsp;system</span><span style="color: #000000; ">-</span><span style="color: #000000; ">wide&nbsp;crontab<br /><br />#&nbsp;Unlike&nbsp;any&nbsp;other&nbsp;crontab&nbsp;you&nbsp;don</span><span style="color: #000000; ">'</span><span style="color: #000000; ">t&nbsp;have&nbsp;to&nbsp;run&nbsp;the&nbsp;`crontab</span><span style="color: #000000; ">'</span><span style="color: #000000; "><br /><br />#&nbsp;command&nbsp;to&nbsp;install&nbsp;the&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;version&nbsp;when&nbsp;you&nbsp;edit&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">&nbsp;file<br /><br />#&nbsp;and&nbsp;files&nbsp;</span><span style="color: #0000FF; ">in</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">/</span><span style="color: #000000; ">etc</span><span style="color: #000000; ">/</span><span style="color: #000000; ">cron.d.&nbsp;These&nbsp;files&nbsp;also&nbsp;have&nbsp;username&nbsp;fields,<br /><br />#&nbsp;that&nbsp;none&nbsp;of&nbsp;the&nbsp;other&nbsp;crontabs&nbsp;</span><span style="color: #0000FF; ">do</span><span style="color: #000000; ">.<br /><br />SHELL</span><span style="color: #000000; ">=/</span><span style="color: #000000; ">bin</span><span style="color: #000000; ">/</span><span style="color: #000000; ">sh<br /><br />PATH</span><span style="color: #000000; ">=/</span><span style="color: #000000; ">usr</span><span style="color: #000000; ">/</span><span style="color: #000000; ">local</span><span style="color: #000000; ">/</span><span style="color: #000000; ">sbin:</span><span style="color: #000000; ">/</span><span style="color: #000000; ">usr</span><span style="color: #000000; ">/</span><span style="color: #000000; ">local</span><span style="color: #000000; ">/</span><span style="color: #000000; ">bin:</span><span style="color: #000000; ">/</span><span style="color: #000000; ">sbin:</span><span style="color: #000000; ">/</span><span style="color: #000000; ">bin:</span><span style="color: #000000; ">/</span><span style="color: #000000; ">usr</span><span style="color: #000000; ">/</span><span style="color: #000000; ">sbin:</span><span style="color: #000000; ">/</span><span style="color: #000000; ">usr</span><span style="color: #000000; ">/</span><span style="color: #000000; ">bin<br /><br />#&nbsp;m&nbsp;h&nbsp;dom&nbsp;mon&nbsp;dow&nbsp;user&nbsp;&nbsp;command<br /><br /></span><span style="color: #000000; ">17</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;root&nbsp;&nbsp;&nbsp;&nbsp;cd&nbsp;</span><span style="color: #000000; ">/</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;run</span><span style="color: #000000; ">-</span><span style="color: #000000; ">parts&nbsp;</span><span style="color: #000000; ">--</span><span style="color: #000000; ">report&nbsp;</span><span style="color: #000000; ">/</span><span style="color: #000000; ">etc</span><span style="color: #000000; ">/</span><span style="color: #000000; ">cron.hourly<br /><br /></span><span style="color: #000000; ">25</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">6</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;root&nbsp;&nbsp;&nbsp;&nbsp;test&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">x&nbsp;</span><span style="color: #000000; ">/</span><span style="color: #000000; ">usr</span><span style="color: #000000; ">/</span><span style="color: #000000; ">sbin</span><span style="color: #000000; ">/</span><span style="color: #000000; ">anacron&nbsp;</span><span style="color: #000000; ">||</span><span style="color: #000000; ">&nbsp;(&nbsp;cd&nbsp;</span><span style="color: #000000; ">/</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;run</span><span style="color: #000000; ">-</span><span style="color: #000000; ">parts&nbsp;</span><span style="color: #000000; ">--</span><span style="color: #000000; ">report&nbsp;</span><span style="color: #000000; ">/</span><span style="color: #000000; ">etc</span><span style="color: #000000; ">/</span><span style="color: #000000; ">cron.daily&nbsp;)<br /><br /></span><span style="color: #000000; ">47</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">6</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">7</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;root&nbsp;&nbsp;&nbsp;&nbsp;test&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">x&nbsp;</span><span style="color: #000000; ">/</span><span style="color: #000000; ">usr</span><span style="color: #000000; ">/</span><span style="color: #000000; ">sbin</span><span style="color: #000000; ">/</span><span style="color: #000000; ">anacron&nbsp;</span><span style="color: #000000; ">||</span><span style="color: #000000; ">&nbsp;(&nbsp;cd&nbsp;</span><span style="color: #000000; ">/</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;run</span><span style="color: #000000; ">-</span><span style="color: #000000; ">parts&nbsp;</span><span style="color: #000000; ">--</span><span style="color: #000000; ">report&nbsp;</span><span style="color: #000000; ">/</span><span style="color: #000000; ">etc</span><span style="color: #000000; ">/</span><span style="color: #000000; ">cron.weekly&nbsp;)<br /><br /></span><span style="color: #000000; ">52</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">6</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;root&nbsp;&nbsp;&nbsp;&nbsp;test&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">x&nbsp;</span><span style="color: #000000; ">/</span><span style="color: #000000; ">usr</span><span style="color: #000000; ">/</span><span style="color: #000000; ">sbin</span><span style="color: #000000; ">/</span><span style="color: #000000; ">anacron&nbsp;</span><span style="color: #000000; ">||</span><span style="color: #000000; ">&nbsp;(&nbsp;cd&nbsp;</span><span style="color: #000000; ">/</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;run</span><span style="color: #000000; ">-</span><span style="color: #000000; ">parts&nbsp;</span><span style="color: #000000; ">--</span><span style="color: #000000; ">report&nbsp;</span><span style="color: #000000; ">/</span><span style="color: #000000; ">etc</span><span style="color: #000000; ">/</span><span style="color: #000000; ">cron.monthly&nbsp;)<br /><br /></span><span style="color: #000000; ">0</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;root&nbsp;&nbsp;&nbsp;&nbsp;test4.sh &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #加上此行，表示每天1时执行脚本&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />#<br /></span></div><br /><div>   	 	 	 	  <p style="margin-bottom: 0cm">* * * * *           #表示每分钟</p> <p style="margin-bottom: 0cm">1 * * * *           #表示每小时的第一分钟</p> <p style="margin-bottom: 0cm">2 12 * * *         #表示每天的12：02</p> <p style="margin-bottom: 0cm">0-59/2 * * * *  #每两分钟执行一次任务</p> </div><br /><br /><br /><br /><img src ="http://www.cppblog.com/cxiaojia/aggbug/189789.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cxiaojia/" target="_blank">C小加</a> 2012-09-07 11:00 <a href="http://www.cppblog.com/cxiaojia/archive/2012/09/07/189789.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一天一个shell实例（2）生成随机数</title><link>http://www.cppblog.com/cxiaojia/archive/2012/09/06/189653.html</link><dc:creator>C小加</dc:creator><author>C小加</author><pubDate>Thu, 06 Sep 2012 02:13:00 GMT</pubDate><guid>http://www.cppblog.com/cxiaojia/archive/2012/09/06/189653.html</guid><wfw:comment>http://www.cppblog.com/cxiaojia/comments/189653.html</wfw:comment><comments>http://www.cppblog.com/cxiaojia/archive/2012/09/06/189653.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/cxiaojia/comments/commentRss/189653.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cxiaojia/services/trackbacks/189653.html</trackback:ping><description><![CDATA[<div>   	 	 	 	  <p style="margin-bottom: 0cm">给出一个程序，随机输出5个整数。</p> <p style="margin-bottom: 0cm"><br /> </p> <p style="margin-bottom: 0cm">把问题分成三个步骤：</p> <p style="margin-bottom: 0cm">1，设置随机数总量和计数器</p> <p style="margin-bottom: 0cm">2，调用while循环，使循环次数为随机数总量</p> <p style="margin-bottom: 0cm">3，在while循环中产生随机数并输出</p> </div><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">#</span><span style="color: #000000; ">!/</span><span style="color: #000000; ">bin</span><span style="color: #000000; ">/</span><span style="color: #000000; ">bash<br /><br />MAX</span><span style="color: #000000; ">=</span><span style="color: #000000; ">5</span><span style="color: #000000; "> &nbsp; #</span><span style="color: #000000; ">1</span><span style="color: #000000; "><br />i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">1</span><span style="color: #000000; ">&nbsp; #</span><span style="color: #000000; ">2</span><span style="color: #000000; "><br /><br />echo&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">$MAX&nbsp;random&nbsp;numbers&nbsp;are&nbsp;generated:</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">&nbsp;[&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">$i</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">le&nbsp;$MAX&nbsp;]&nbsp; #</span><span style="color: #000000; ">3</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">do</span><span style="color: #000000; "><br />echo&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">$RANDOM</span><span style="color: #000000; ">"</span><span style="color: #000000; "> &nbsp; #</span><span style="color: #000000; ">4</span><span style="color: #000000; "><br />let&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">i=i+1</span><span style="color: #000000; ">"</span><span style="color: #000000; "> &nbsp; #</span><span style="color: #000000; ">5</span><span style="color: #000000; "><br />done</span></div><div>   	 	 	 	  <p style="margin-bottom: 0cm">#1：产生随机数的总量</p> <p style="margin-bottom: 0cm">#2：计数器，初值是1</p> <p style="margin-bottom: 0cm;">#3：调用while使得i的值小于等于MAX，-le是小于等于的意思。对应的整数比较如下：<br /></p><p style="margin-bottom: 0cm;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	-eq&nbsp;&nbsp;&nbsp;  等于  while [ "$a" -eq "$b" ] &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;    [ ] 和test, /usr/bin/test,/usr/bin/[一样，是等价命令。 <br /></p><p style="margin-bottom: 0cm;">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; -ne&nbsp;&nbsp;&nbsp;  不等于  while [ "$a" -ne "$b" ] <br /></p><p style="margin-bottom: 0cm;">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; -gt&nbsp;&nbsp;&nbsp;&nbsp;  大于  while [ "$a" -gt "$b" ] <br /></p><p style="margin-bottom: 0cm;">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; -ge &nbsp;&nbsp; 大于等于  while [ "$a" -ge "$b" ]</p><p style="margin-bottom: 0cm;"> 	&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; -lt &nbsp; &nbsp;  小于  while [ "$a" -lt "$b" ]</p><p style="margin-bottom: 0cm;"> 	&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; -le &nbsp; &nbsp;  小于等于  while [ "$a" -le "$b" ] <br /></p><p style="margin-bottom: 0cm;">	&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;&nbsp; &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  小于(在双括号中使用)  (("$a" &lt; "$b")) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;   (( ))是用于计算一个算术表达式的值。</p><p style="margin-bottom: 0cm;">  	&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;=&nbsp;&nbsp;&nbsp;&nbsp; 小于等于(在双括号中使用)  (("$a" &lt;= "$b")) <br /></p><p style="margin-bottom: 0cm;">	&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  大于(在双括号中使用)  (("$a" &gt; "$b")) <br /></p><p style="margin-bottom: 0cm">	&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;&nbsp; &gt;=&nbsp;&nbsp;&nbsp;  大于等于(在双括号中使用)  (("$a" &gt;= "$b"))</p> <p style="margin-bottom: 0cm;"> #4：产生一个随机数并输出，随机数范围0～32767</p> <p style="margin-bottom: 0cm"><br /> </p> <p style="margin-bottom: 0cm">脚本执行结果：</p> </div><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">root@Notebook</span><span style="color: #000000; ">-</span><span style="color: #000000; ">PC:</span><span style="color: #000000; ">/</span><span style="color: #000000; ">home</span><span style="color: #000000; ">/</span><span style="color: #000000; ">lwx</span><span style="color: #000000; ">/</span><span style="color: #000000; ">myshelltest#&nbsp;.</span><span style="color: #000000; ">/</span><span style="color: #000000; ">test3.sh<br /><br /></span><span style="color: #000000; ">5</span><span style="color: #000000; ">&nbsp;random&nbsp;numbers&nbsp;are&nbsp;generated:<br /><br /></span><span style="color: #000000; ">30151</span><span style="color: #000000; "><br /><br /></span><span style="color: #000000; ">29006</span><span style="color: #000000; "><br /><br /></span><span style="color: #000000; ">26024</span><span style="color: #000000; "><br /><br /></span><span style="color: #000000; ">533</span><span style="color: #000000; "><br /><br /></span><span style="color: #000000; ">22498</span><span style="color: #000000; "><br /></span></div><br /><br /><br /><img src ="http://www.cppblog.com/cxiaojia/aggbug/189653.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cxiaojia/" target="_blank">C小加</a> 2012-09-06 10:13 <a href="http://www.cppblog.com/cxiaojia/archive/2012/09/06/189653.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一天一个shell实例（1）文本中n个出现频率最高的单词</title><link>http://www.cppblog.com/cxiaojia/archive/2012/09/05/189585.html</link><dc:creator>C小加</dc:creator><author>C小加</author><pubDate>Wed, 05 Sep 2012 09:49:00 GMT</pubDate><guid>http://www.cppblog.com/cxiaojia/archive/2012/09/05/189585.html</guid><wfw:comment>http://www.cppblog.com/cxiaojia/comments/189585.html</wfw:comment><comments>http://www.cppblog.com/cxiaojia/archive/2012/09/05/189585.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cxiaojia/comments/commentRss/189585.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cxiaojia/services/trackbacks/189585.html</trackback:ping><description><![CDATA[写一个文本处理程序，查找文本中n个出现频率最高的单词，输出的结果需要显示这些单词出现的次数，并按照次数从大到小排序。<div> <p style="margin-bottom: 0cm">把问题分成六个步骤：</p> <p style="margin-bottom: 0cm">1，将文本以一行一个单词的形式显示出来</p> <p style="margin-bottom: 0cm">2，将大写字母转换成小写</p> <p style="margin-bottom: 0cm">3，对单词进行排序</p> <p style="margin-bottom: 0cm">4，对排序好的单词列表统计每个单词出现的次数</p> <p style="margin-bottom: 0cm">5，按照出现的次数排序</p> <p style="margin-bottom: 0cm">6，显示单词列表的前n行</p> <p style="margin-bottom: 0cm">脚本的代码如下：</p> <p style="margin-bottom: 0cm"><br /> </p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">#topn.sh脚本<br /><br />#</span><span style="color: #000000; ">!/</span><span style="color: #000000; ">bin</span><span style="color: #000000; ">/</span><span style="color: #000000; ">bash<br /><br />end</span><span style="color: #000000; ">=</span><span style="color: #000000; ">$</span><span style="color: #000000; ">1</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp; #</span><span style="color: #000000; ">1</span><span style="color: #000000; "><br /><br />cat&nbsp;$</span><span style="color: #000000; ">2</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">|</span><span style="color: #000000; "> &nbsp; &nbsp;&nbsp; #</span><span style="color: #000000; ">2</span><span style="color: #000000; "><br /><br />tr&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">cs&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">[a-z][A-Z]</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">[\012*]</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">|</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #</span><span style="color: #000000; ">3</span><span style="color: #000000; "><br /><br />tr&nbsp;A</span><span style="color: #000000; ">-</span><span style="color: #000000; ">Z&nbsp;a</span><span style="color: #000000; ">-</span><span style="color: #000000; ">z&nbsp;</span><span style="color: #000000; ">|</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #</span><span style="color: #000000; ">4</span><span style="color: #000000; "><br /><br />sort&nbsp;</span><span style="color: #000000; ">|</span><span style="color: #000000; "> &nbsp; &nbsp;&nbsp; #</span><span style="color: #000000; ">5</span><span style="color: #000000; "><br /><br />uniq&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">c&nbsp;</span><span style="color: #000000; ">|</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #</span><span style="color: #000000; ">6</span><span style="color: #000000; "><br /><br />sort&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">k1nr&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">k2&nbsp;</span><span style="color: #000000; ">|</span><span style="color: #000000; "> &nbsp; &nbsp; &nbsp; #</span><span style="color: #000000; ">7</span><span style="color: #000000; "><br /><br />head&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">$end</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #</span><span style="color: #000000; ">8</span></div><p style="margin-bottom: 0cm"><br /> </p> <p style="margin-bottom: 0cm">#1：$1为第一个参数，表示输出频率最高的行数</p> <p style="margin-bottom: 0cm">#2：$2为第二个参数，表示目标文本，使用cat把目标文本输入管道，|为管道符</p> <p style="margin-bottom: 0cm">#3：tr命令的-c选项用于选定不在&#8221;[a-z][A-Z]&#8221;字符集内的字符，tr命令将选定的字符转换成换行符，\012是换行符的八进制码，*表示将换行符任意扩展，使其等于被替换的字符集个数，这样就将所有非字母的符号转换为换行符，从而将文本文件以一行一个单词的形式显示出来。-s删除所有重复出现的字符序列，只保留一个。最后把得到的结果输入管道。</p> <p style="margin-bottom: 0cm">#4：tr把大写字母转化成小写字母</p> <p style="margin-bottom: 0cm">#5：把分好的单词进行排序</p> <p style="margin-bottom: 0cm">#6：uniq对排序好的单词列表统计每个单词出现的次数，并删除相邻重复行，-c 在输出行前面加上每行在输入文件中出现的次数。 这样就得到了出现的频率及其对应的单词。</p> <p style="margin-bottom: 0cm">#7：用sort按照出现的频率从大大小排序，频率相同的按照字母排序。-k1表示按照第一域进行排序，-k2为按照第二域进行排序，先按照第一域排序如果第一域相等再按照第二域排序，-n表示数字，-r表示从大到小排序</p> <p style="margin-bottom: 0cm">#8：head 输出前n行</p> <p style="margin-bottom: 0cm"><br /> </p> <p style="margin-bottom: 0cm">输出结果：</p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">root@lNotebook</span><span style="color: #000000; ">-</span><span style="color: #000000; ">PC:</span><span style="color: #000000; ">/</span><span style="color: #000000; ">home</span><span style="color: #000000; ">/</span><span style="color: #000000; ">lwx</span><span style="color: #000000; ">/</span><span style="color: #000000; ">myshelltest#&nbsp;.</span><span style="color: #000000; ">/</span><span style="color: #000000; ">topn.sh&nbsp;</span><span style="color: #000000; ">5</span><span style="color: #000000; ">&nbsp;test&nbsp;.txt<br /></span><span style="color: #000000; ">13</span><span style="color: #000000; ">&nbsp;qwe<br /></span><span style="color: #000000; ">12</span><span style="color: #000000; ">&nbsp;qw<br /></span><span style="color: #000000; ">11</span><span style="color: #000000; ">&nbsp;eqw<br /></span><span style="color: #000000; ">8</span><span style="color: #000000; ">&nbsp;sdf<br /></span><span style="color: #000000; ">7</span><span style="color: #000000; ">&nbsp;we <br /></span></div></div><img src ="http://www.cppblog.com/cxiaojia/aggbug/189585.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cxiaojia/" target="_blank">C小加</a> 2012-09-05 17:49 <a href="http://www.cppblog.com/cxiaojia/archive/2012/09/05/189585.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>