<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.chenzhiwei.net/styles/feedsky2.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feed.chenzhiwei.net" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feed.feedsky.com/chenzhiwei" type="application/rss+xml"></fs:self_link><lastBuildDate>Fri, 13 Aug 2010 12:55:39 GMT</lastBuildDate><title>陈志伟</title><description>善始者实繁，克终者盖寡。</description><image><url>http://www.feedsky.com/feed/chenzhiwei/sc/gif</url><title>陈志伟</title><link>http://chenzhiwei.net</link></image><link>http://chenzhiwei.net</link><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>1</sy:updateFrequency><language>en</language><pubDate>Fri, 13 Aug 2010 12:55:39 GMT</pubDate><item><title>我所认识的android</title><link>http://chenzhiwei.net/2010/08/google-android-operating-system/</link><content:encoded>&lt;p&gt;android（&lt;a href=&quot;http://zh.wikipedia.org/zh-cn/Android&quot; target=&quot;_blank&quot;&gt;维基词条&lt;/a&gt;）是机器人的意思，也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称，该平台由操作系统、中间件、用户界面和应用软件组成，号称是首个为移动终端打造的真正开放和完整的移动软件。&lt;/p&gt;
&lt;p&gt;今年3月份和4月份，有一段时间我在学习android手机应用开发，当时也写了一篇文章“&lt;a href=&quot;http://chenzhiwei.net/2010/03/android-hellogallery-app/&quot; target=&quot;_blank&quot;&gt;android初体验-HelloGallery实例详解&lt;/a&gt;”，当时自己刚刚开始学习，也没有教材，只能一点点的阅读英文文档，按照文档上面写的例子一个个的练习，也在网上的一些关于android的论坛（如&lt;a href=&quot;http://bbs.gfan.com/&quot; target=&quot;_blank&quot;&gt;机锋网&lt;/a&gt;、&lt;a href=&quot;http://www.eoeandroid.com/&quot; target=&quot;_blank&quot;&gt;eoeandroid&lt;/a&gt;）上看别人发的帖子。因为我对java和eclipse很熟悉，所以学习起来很轻松。&lt;span id=&quot;more-30336&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;我从来没用过android手机，但是在我学习android应用开发的这段时间，我感受到了android系统的强大，在众多开发者的努力下，android系统正在变的越来越牛，在android系统上面甚至可以&lt;a href=&quot;http://android.google.org.cn/posts/php-for-android-install-it-and-start-testing.html&quot; target=&quot;_blank&quot;&gt;编写php&lt;/a&gt;，这不得不让人感到惊奇。借助于android模拟器，我感觉到了android系统界面的友好和功能操作的便利。&lt;/p&gt;
&lt;p&gt;就目前来看，我还是觉得android手机有点贵，一般的学生都用不起，在我周围还没有发现用android手机的同学呢，很多同学都是用的摩托罗拉和诺基亚，而更多的同学用的是山寨机，包括我在内。去年年初，我看到一篇文章，说国产山寨机安装android操作系统只需要500-800元就可以买下了，可渐渐的我发现，这纯粹是乱说，根本不是这回事，从&lt;a href=&quot;http://android.google.org.cn/&quot; target=&quot;_blank&quot;&gt;谷奥Android站点&lt;/a&gt;建立开始，我一直都在订阅，一直在关注android系统的消息，感觉android手机离500-800元还有很长很长的一段路要走，也许永远都不可能实现。&lt;/p&gt;
&lt;p&gt;就目前来看，android发展前景应该相当不错，有不作恶的google来提供支持及广大android爱好者来开发应用程序，相信用不了多久，就能超越某果的封闭式手机。我没有用过，也没有见过某果的封闭式手机，虽然在网上很多人都对此评价很高，但是我是不会使用它的，不为别的，就因为它不开放，不开源。&lt;/p&gt;
&lt;p&gt;PS:这也是之前写的一篇博客，没有写完，今天我又补充了一点内容，但是仍然感觉标题和内容有些出入，但我还是把它发表出来了。现在，我的博客草稿箱里面已经空了，没有什么草稿文章了。。。&lt;/p&gt;
&lt;p style=&quot;font-weight: bold;&quot;&gt;&amp;copy; 2010, &lt;a href=&quot;http://chenzhiwei.net&quot;&gt;chenzhiwei.net&lt;/a&gt;. 版权所有.  &lt;br /&gt;本文永久链接：&lt;a title=&quot;我所认识的android&quot; href=&quot;http://chenzhiwei.net/2010/08/google-android-operating-system/&quot;&gt;http://chenzhiwei.net/2010/08/google-android-operating-system/&lt;/a&gt;&lt;/p&gt;&lt;hr /&gt;&lt;div  class=&quot;related_post_title&quot;&gt;相关日志&lt;/div&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2010/03/android-hellogallery-app/&quot; title=&quot;android初体验-HelloGallery实例详解&quot;&gt;android初体验-HelloGallery实例详解&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2010/03/install-ubuntu-under-windows/&quot; title=&quot;windows下硬盘安装ubuntu的方法&quot;&gt;windows下硬盘安装ubuntu的方法&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2009/10/google-voice-wave-china-internet/&quot; title=&quot;这些天的一些事情&quot;&gt;这些天的一些事情&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2009/07/tips-for-google-short-links/&quot; title=&quot;Google Short Links网址缩短服务&quot;&gt;Google Short Links网址缩短服务&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2009/07/use-gae-for-java/&quot; title=&quot;GAE for Java 试用手记&quot;&gt;GAE for Java 试用手记&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/402623350/chenzhiwei/feedsky/s.gif?r=http://chenzhiwei.net/2010/08/google-android-operating-system/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/chenzhiwei/402623350/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/chenzhiwei/402623350/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://chenzhiwei.net/2010/08/google-android-operating-system/feed/</wfw:commentRss><slash:comments>0</slash:comments><description>android（维基词条）是机器人的意思，也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称，该平台由操作系统、中间件、用户界面和应用软件组成，号称是首个为移动终端打造的真正开放和完整的移动软件。
今年3月份和4月份，有一段时间我在学习android手机应用开发，当时也写了一篇文章“android初体验-HelloGallery实例详解”，当时自己刚刚开始学习，也没有教材，只能一点点的阅读英文文档，按照文档上面写的例子一个个的练习，也在网上的一些关于android的论坛（如机锋网、eoeandroid）上看别人发的帖子。因为我对java和eclipse很熟悉，所以学习起来很轻松。
我从来没用过android手机，但是在我学习android应用开发的这段时间，我感受到了android系统的强大，在众多开发者的努力下，android系统正在变的越来越牛，在android系统上面甚至可以编写php，这不得不让人感到惊奇。借助于android模拟器，我感觉到了android系统界面的友好和功能操作的便利。
就目前来看，我还是觉得android手机有点贵，一般的学生都用不起，在我周围还没有发现用android手机的同学呢，很多同学都是用的摩托罗拉和诺基亚，而更多的同学用的是山寨机，包括我在内。去年年初，我看到一篇文章，说国产山寨机安装android操作系统只需要500-800元就可以买下了，可渐渐的我发现，这纯粹是乱说，根本不是这回事，从谷奥Android站点建立开始，我一直都在订阅，一直在关注android系统的消息，感觉android手机离500-800元还有很长很长的一段路要走，也许永远都不可能实现。
就目前来看，android发展前景应该相当不错，有不作恶的google来提供支持及广大android爱好者来开发应用程序，相信用不了多久，就能超越某果的封闭式手机。我没有用过，也没有见过某果的封闭式手机，虽然在网上很多人都对此评价很高，但是我是不会使用它的，不为别的，就因为它不开放，不开源。
PS:这也是之前写的一篇博客，没有写完，今天我又补充了一点内容，但是仍然感觉标题和内容有些出入，但我还是把它发表出来了。现在，我的博客草稿箱里面已经空了，没有什么草稿文章了。。。
&amp;#169; 2010, chenzhiwei.net. 版权所有.  本文永久链接：http://chenzhiwei.net/2010/08/google-android-operating-system/相关日志android初体验-HelloGallery实例详解windows下硬盘安装ubuntu的方法这些天的一些事情Google Short Links网址缩短服务GAE for Java 试用手记&lt;img src=&quot;http://www1.feedsky.com/t1/402623350/chenzhiwei/feedsky/s.gif?r=http://chenzhiwei.net/2010/08/google-android-operating-system/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/chenzhiwei/402623350/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/chenzhiwei/402623350/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>android</category><category>OS</category><category>默认分类</category><category>google</category><pubDate>Fri, 13 Aug 2010 20:55:39 +0800</pubDate><author>zhiwei</author><comments>http://chenzhiwei.net/2010/08/google-android-operating-system/#comments</comments><guid isPermaLink="false">http://chenzhiwei.net/?p=30336</guid><dc:creator>zhiwei</dc:creator><fs:srclink>http://chenzhiwei.net/2010/08/google-android-operating-system/</fs:srclink><fs:srcfeed>http://chenzhiwei.net/feed</fs:srcfeed><fs:itemid>feedsky/chenzhiwei/~8123134/402623350/5440650</fs:itemid></item><item><title>关于社交网络-我的一点看法</title><link>http://chenzhiwei.net/2010/08/my-opinions-about-the-social-network/</link><content:encoded>&lt;p&gt;社交网络(SNS,Social Network Service)专指旨在帮助人们建立社会性网络的互联网应用服务。以认识朋友的朋友为基础，扩展自己的人脉。并且无限扩张自己的人脉，在需要的时候，可以随时获取一点，得到该人脉的帮助。举个简单的例子：有A,B,C,D四个人，A和B是朋友，B和C是朋友，C和D是朋友，通过社交网络服务可以让A,B,C,D相互认识，因为他们互为朋友或朋友的朋友。&lt;span id=&quot;more-30340&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;我最早接触的社交网站是&lt;a href=&quot;http://facebook.com/&quot; target=&quot;_blank&quot;&gt;facebook.com&lt;/a&gt;，记得是在2007国庆假期，那时我刚上大学，第一个国庆假期没有回家，和室友在网吧上网时注册的facebook，那时我在用MSN和一个网友聊天，是他邀请我加入facebook的，我当时什么都没想就加入了，直接用的我MSN帐户登录的。在前些天我找回了2007年注册的facebook帐户，上面居然绑定了我的第一个手机号码。如果换成现在的话，我是不会轻易将手机号码提交给他们的。&lt;/p&gt;
&lt;p&gt;我花了近一个小时来整理了一下我在2007年国庆注册的facebook帐户，上传了自己真实的照片，这也是我在网上公开的第一张照片。facebook 给我的总体感觉还是不错的，所以我没有打算注销facebook帐户。现在在国内通过正常途径已经登录不上facebook的官网了，只能用特别的方式来登录，以后或许能用到facebook 帐户，所以我不打算注销掉。&lt;/p&gt;
&lt;p&gt;对于facebook之类的社交网站，我一直都保持排斥的心理，拒绝注册。虽然这些社交网站让很多人找回了他们童年的伙伴、同学，但我还是担心这些网站会泄漏个人隐私，所以我就一直没去注册校内网。很多同学都说在校内网上找不到我，我就告诉他们我不用校内网。在2008年8月份，我注册了个校内网帐户，用的是个假名字，因为我当初只想用校内网来宣传我做的一个论坛，后台论坛倒闭了，这个帐户我一直都没有用，现在还能正常登录。前些天，因为某些原因我开通了&lt;a href=&quot;http://xiaoyou.qq.com&quot; target=&quot;_blank&quot;&gt;QQ校友&lt;/a&gt;，感觉QQ校友的UI做的很不错，比起校内网的界面要强出N+N倍，我非常喜欢QQ校友的界面。虽然国内的SNS里面没有什么值得我去耗费时间的内容，但是QQ校友界面确实是很漂亮，我都不忍心注销QQ校友。&lt;/p&gt;
&lt;p&gt;其实，在此前，我写过一篇文章《&lt;a href=&quot;http://chenzhiwei.net/2010/05/network-real-name-system/&quot; target=&quot;_blank&quot;&gt;网络实名制&lt;/a&gt;》，在网上我是用的实名，虽然大家都知道我叫什么，但是由于隐私问题，我一直不愿使用社交网络，虽然现在我有QQ校友，但是上面就我自己，我没有加任何人。在网络上，我所定义的个人隐私是“自己身边的人不被别人知道，包括同学和朋友及家人”，我自己自身方面的信息，我看的比较轻，一直以来我在网上注册帐户什么的用的都是自己的真实姓名。&lt;/p&gt;
&lt;p&gt;这几天比较忙，一直没空写博客。这篇文章的大部分内容都是以前已经写好的，没有发表，今天我又重新整理了一下，发表出来。这两天，我申请了个新域名，搭建了一个英文博客，以后想写写英文博客，顺便也能提升一下自己的英文水平。&lt;/p&gt;
&lt;p style=&quot;font-weight: bold;&quot;&gt;&amp;copy; 2010, &lt;a href=&quot;http://chenzhiwei.net&quot;&gt;chenzhiwei.net&lt;/a&gt;. 版权所有.  &lt;br /&gt;本文永久链接：&lt;a title=&quot;关于社交网络-我的一点看法&quot; href=&quot;http://chenzhiwei.net/2010/08/my-opinions-about-the-social-network/&quot;&gt;http://chenzhiwei.net/2010/08/my-opinions-about-the-social-network/&lt;/a&gt;&lt;/p&gt;&lt;hr /&gt;&lt;div  class=&quot;related_post_title&quot;&gt;相关日志&lt;/div&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2010/07/wordpress-useful-code/&quot; title=&quot;wordpress主题常用的代码&quot;&gt;wordpress主题常用的代码&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2010/04/recent-thoughts/&quot; title=&quot;最近的一些思考&quot;&gt;最近的一些思考&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2010/03/change-blog-domain-name/&quot; title=&quot;博客更换域名&quot;&gt;博客更换域名&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2010/01/2010-is-a-new-start/&quot; title=&quot;2010又是一个新的开始&quot;&gt;2010又是一个新的开始&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2009/11/move-blog-again/&quot; title=&quot;博客又一次搬家&quot;&gt;博客又一次搬家&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/402623351/chenzhiwei/feedsky/s.gif?r=http://chenzhiwei.net/2010/08/my-opinions-about-the-social-network/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/chenzhiwei/402623351/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/chenzhiwei/402623351/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://chenzhiwei.net/2010/08/my-opinions-about-the-social-network/feed/</wfw:commentRss><slash:comments>0</slash:comments><description>社交网络(SNS,Social Network Service)专指旨在帮助人们建立社会性网络的互联网应用服务。以认识朋友的朋友为基础，扩展自己的人脉。并且无限扩张自己的人脉，在需要的时候，可以随时获取一点，得到该人脉的帮助。举个简单的例子：有A,B,C,D四个人，A和B是朋友，B和C是朋友，C和D是朋友，通过社交网络服务可以让A,B,C,D相互认识，因为他们互为朋友或朋友的朋友。
我最早接触的社交网站是facebook.com，记得是在2007国庆假期，那时我刚上大学，第一个国庆假期没有回家，和室友在网吧上网时注册的facebook，那时我在用MSN和一个网友聊天，是他邀请我加入facebook的，我当时什么都没想就加入了，直接用的我MSN帐户登录的。在前些天我找回了2007年注册的facebook帐户，上面居然绑定了我的第一个手机号码。如果换成现在的话，我是不会轻易将手机号码提交给他们的。
我花了近一个小时来整理了一下我在2007年国庆注册的facebook帐户，上传了自己真实的照片，这也是我在网上公开的第一张照片。facebook 给我的总体感觉还是不错的，所以我没有打算注销facebook帐户。现在在国内通过正常途径已经登录不上facebook的官网了，只能用特别的方式来登录，以后或许能用到facebook 帐户，所以我不打算注销掉。
对于facebook之类的社交网站，我一直都保持排斥的心理，拒绝注册。虽然这些社交网站让很多人找回了他们童年的伙伴、同学，但我还是担心这些网站会泄漏个人隐私，所以我就一直没去注册校内网。很多同学都说在校内网上找不到我，我就告诉他们我不用校内网。在2008年8月份，我注册了个校内网帐户，用的是个假名字，因为我当初只想用校内网来宣传我做的一个论坛，后台论坛倒闭了，这个帐户我一直都没有用，现在还能正常登录。前些天，因为某些原因我开通了QQ校友，感觉QQ校友的UI做的很不错，比起校内网的界面要强出N+N倍，我非常喜欢QQ校友的界面。虽然国内的SNS里面没有什么值得我去耗费时间的内容，但是QQ校友界面确实是很漂亮，我都不忍心注销QQ校友。
其实，在此前，我写过一篇文章《网络实名制》，在网上我是用的实名，虽然大家都知道我叫什么，但是由于隐私问题，我一直不愿使用社交网络，虽然现在我有QQ校友，但是上面就我自己，我没有加任何人。在网络上，我所定义的个人隐私是“自己身边的人不被别人知道，包括同学和朋友及家人”，我自己自身方面的信息，我看的比较轻，一直以来我在网上注册帐户什么的用的都是自己的真实姓名。
这几天比较忙，一直没空写博客。这篇文章的大部分内容都是以前已经写好的，没有发表，今天我又重新整理了一下，发表出来。这两天，我申请了个新域名，搭建了一个英文博客，以后想写写英文博客，顺便也能提升一下自己的英文水平。
&amp;#169; 2010, chenzhiwei.net. 版权所有.  本文永久链接：http://chenzhiwei.net/2010/08/my-opinions-about-the-social-network/相关日志wordpress主题常用的代码最近的一些思考博客更换域名2010又是一个新的开始博客又一次搬家&lt;img src=&quot;http://www1.feedsky.com/t1/402623351/chenzhiwei/feedsky/s.gif?r=http://chenzhiwei.net/2010/08/my-opinions-about-the-social-network/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/chenzhiwei/402623351/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/chenzhiwei/402623351/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>SNS</category><category>博客</category><category>个人日志</category><category>facebook</category><pubDate>Fri, 13 Aug 2010 20:28:52 +0800</pubDate><author>zhiwei</author><comments>http://chenzhiwei.net/2010/08/my-opinions-about-the-social-network/#comments</comments><guid isPermaLink="false">http://chenzhiwei.net/?p=30340</guid><dc:creator>zhiwei</dc:creator><fs:srclink>http://chenzhiwei.net/2010/08/my-opinions-about-the-social-network/</fs:srclink><fs:srcfeed>http://chenzhiwei.net/feed</fs:srcfeed><fs:itemid>feedsky/chenzhiwei/~8123134/402623351/5440650</fs:itemid></item><item><title>linux shell 学习笔记(四)</title><link>http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-4/</link><content:encoded>&lt;p&gt;九、linux中的函数&lt;/p&gt;
&lt;p&gt;函数代表一种模块化的设计思想，可以将一些常用的、内聚度高的操作封装成函数，在需要时进行调用。&lt;br /&gt;
&lt;span id=&quot;more-30329&quot;&gt;&lt;/span&gt;&lt;br /&gt;
1. 函数原型&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;shell&quot; style=&quot;font-family:monospace;&quot;&gt;function 函数名()
{
	语句
}&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;在此，function可以不显示指定。函数应先定义后使用，在调用时只需指定函数名即可，不用写()。&lt;/p&gt;
&lt;p&gt;示例：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
5
6
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;shell&quot; style=&quot;font-family:monospace;&quot;&gt;#!/bin/bash
function printAddress()
{
	echo &amp;quot;your address is: beijing&amp;quot;
}
printAddress&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;2. 函数的参数和返回值&lt;/p&gt;
&lt;p&gt;在shell函数中，有两种方法使用参数：一种是变量直接传递法，另一种采用位置参数。&lt;/p&gt;
&lt;p&gt;变量直接传递法是通过直接在外部声明变量，在函数体里面通过操作这些变量，达到向函数传递参数的目的。&lt;/p&gt;
&lt;p&gt;例如：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
5
6
7
8
9
10
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;shell&quot; style=&quot;font-family:monospace;&quot;&gt;#!/bin/bash
address=&amp;quot;beijing&amp;quot;
function printAddress()
{
	echo &amp;quot;your address_1 is: &amp;quot;$address
	address=&amp;quot;shanghai&amp;quot;
	echo &amp;quot;your address_2 is: &amp;quot;$address
}
printAddress
echo &amp;quot;your address_3 is: &amp;quot;$address&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;由此可见，函数中进行变量修改也作全局使用，所以可以通过在函数中修改参数变量来达到函数返回目的，将这些参数作为返回值。&lt;/p&gt;
&lt;p&gt;通过下面的例子可以更好的了解位置参数：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
5
6
7
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;shell&quot; style=&quot;font-family:monospace;&quot;&gt;#!/bin/bash
function printAddress()
{
	echo $1
	echo $2
}
printAddress &amp;quot;beijing&amp;quot; &amp;quot;shanghai&amp;quot;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;注：以前学习shell时写的笔记，没有拿到电脑前练习过。这次写在博客上的这些都是我在电脑上(ubuntu8.04)练习通过后贴出来的，单引号和双引号类似于php中的单引号和双引号的用法，在用echo进行标准输出时，如果不涉及变量的话双引号、单引号都是可有可无的，还有那个数组赋值与遍历也是让我琢磨不透，所以这些细微差别还是日后慢慢的在实践中掌握比较好。&lt;/p&gt;
&lt;p style=&quot;font-weight: bold;&quot;&gt;&amp;copy; 2010, &lt;a href=&quot;http://chenzhiwei.net&quot;&gt;chenzhiwei.net&lt;/a&gt;. 版权所有.  &lt;br /&gt;本文永久链接：&lt;a title=&quot;linux shell 学习笔记(四)&quot; href=&quot;http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-4/&quot;&gt;http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-4/&lt;/a&gt;&lt;/p&gt;&lt;hr /&gt;&lt;div  class=&quot;related_post_title&quot;&gt;相关日志&lt;/div&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-3/&quot; title=&quot;linux shell 学习笔记(三)&quot;&gt;linux shell 学习笔记(三)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-2/&quot; title=&quot;linux shell学习笔记(二)&quot;&gt;linux shell学习笔记(二)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-1/&quot; title=&quot;linux shell学习笔记(一)&quot;&gt;linux shell学习笔记(一)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2010/05/vi-and-vim-under-linux/&quot; title=&quot;Linux下的VI和VIM编辑器&quot;&gt;Linux下的VI和VIM编辑器&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2010/03/install-ubuntu-under-windows/&quot; title=&quot;windows下硬盘安装ubuntu的方法&quot;&gt;windows下硬盘安装ubuntu的方法&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/399588392/chenzhiwei/feedsky/s.gif?r=http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-4/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/chenzhiwei/399588392/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/chenzhiwei/399588392/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-4/feed/</wfw:commentRss><slash:comments>7</slash:comments><description>九、linux中的函数
函数代表一种模块化的设计思想，可以将一些常用的、内聚度高的操作封装成函数，在需要时进行调用。

1. 函数原型

1
2
3
4
function 函数名()
{
	语句
}

在此，function可以不显示指定。函数应先定义后使用，在调用时只需指定函数名即可，不用写()。
示例：

1
2
3
4
5
6
#!/bin/bash
function printAddress()
{
	echo &amp;#34;your address is: beijing&amp;#34;
}
printAddress

2. 函数的参数和返回值
在shell函数中，有两种方法使用参数：一种是变量直接传递法，另一种采用位置参数。
变量直接传递法是通过直接在外部声明变量，在函数体里面通过操作这些变量，达到向函数传递参数的目的。
例如：

1
2
3
4
5
6
7
8
9
10
#!/bin/bash
address=&amp;#34;beijing&amp;#34;
function printAddress()
{
	echo &amp;#34;your address_1 is: &amp;#34;$address
	address=&amp;#34;shanghai&amp;#34;
	echo &amp;#34;your address_2 is: &amp;#34;$address
}
printAddress
echo &amp;#34;your address_3 is: &amp;#34;$address

由此可见，函数中进行变量修改也作全局使用，所以可以通过在函数中修改参数变量来达到函数返回目的，将这些参数作为返回值。
通过下面的例子可以更好的了解位置参数：

1
2
3
4
5
6
7
#!/bin/bash
function printAddress()
{
	echo $1
	echo $2
}
printAddress &amp;#34;beijing&amp;#34; &amp;#34;shanghai&amp;#34;

注：以前学习shell时写的笔记，没有拿到电脑前练习过。这次写在博客上的这些都是我在电脑上(ubuntu8.04)练习通过后贴出来的，单引号和双引号类似于php中的单引号和双引号的用法，在用echo进行标准输出时，如果不涉及变量的话双引号、单引号都是可有可无的，还有那个数组赋值与遍历也是让我琢磨不透，所以这些细微差别还是日后慢慢的在实践中掌握比较好。
&amp;#169; 2010, chenzhiwei.net. 版权所有.  本文永久链接：http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-4/相关日志linux shell 学习笔记(三)linux shell学习笔记(二)linux shell学习笔记(一)Linux下的VI和VIM编辑器windows下硬盘安装ubuntu的方法&lt;img src=&quot;http://www1.feedsky.com/t1/399588392/chenzhiwei/feedsky/s.gif?r=http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-4/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/chenzhiwei/399588392/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/chenzhiwei/399588392/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>Linux</category><category>编程相关</category><category>shell</category><category>默认分类</category><pubDate>Wed, 28 Jul 2010 16:09:46 +0800</pubDate><author>zhiwei</author><comments>http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-4/#comments</comments><guid isPermaLink="false">http://chenzhiwei.net/?p=30329</guid><dc:creator>zhiwei</dc:creator><fs:srclink>http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-4/</fs:srclink><fs:srcfeed>http://chenzhiwei.net/feed</fs:srcfeed><fs:itemid>feedsky/chenzhiwei/~8123134/399588392/5440650</fs:itemid></item><item><title>linux shell 学习笔记(三)</title><link>http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-3/</link><content:encoded>&lt;p&gt;八、shell中的循环语句&lt;/p&gt;
&lt;p&gt;shell中的循环语句有for循环语句、while循环语句和until循环语句。&lt;br /&gt;
&lt;span id=&quot;more-30324&quot;&gt;&lt;/span&gt;&lt;br /&gt;
1. for循环语句&lt;/p&gt;
&lt;p&gt;原型一：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
5
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;shell&quot; style=&quot;font-family:monospace;&quot;&gt;for 变量 in 取值集合
for 变量 in 取值集合
do
	语句
done&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;原型二：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;shell&quot; style=&quot;font-family:monospace;&quot;&gt;for 变量 in 文件正则表达式
do
	语句
done&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;原型三：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;shell&quot; style=&quot;font-family:monospace;&quot;&gt;for 变量 in $*
do
	语句
done&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;例：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
5
6
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;shell&quot; style=&quot;font-family:monospace;&quot;&gt;#!/bin/bash
address=(beijing tianjin shandong)
for i in ${address[*]}
do
	echo $i
done&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;说明：&lt;br /&gt;
循环输出数组中的值。&lt;/p&gt;
&lt;p&gt;2. while循环语句&lt;/p&gt;
&lt;p&gt;原型：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;shell&quot; style=&quot;font-family:monospace;&quot;&gt;while 条件测试语句
do
	语句
done&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;while语句的执行过程是：先测试测试语句是否为真，若为真则执行循环体，当执行完当前命令后，再进行条件测试，直到条件结果为假，循环结束。条件测试语句既可以是test语句也可以是运行命令的返回值，若返回值大于0，则表示条件为真，否则条件为假。&lt;/p&gt;
&lt;p&gt;例：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
5
6
7
8
9
10
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;shell&quot; style=&quot;font-family:monospace;&quot;&gt;#!/bin/bash
str=&amp;quot;&amp;quot;
echo &amp;quot;input a str:&amp;quot;
read str
while [ $str != &amp;quot;quit&amp;quot; ]
do
	echo &amp;quot;your input is :&amp;quot;$str
	echo &amp;quot;input your str:&amp;quot;
	read str
done&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;说明：&lt;/p&gt;
&lt;p&gt;3. until循环语句&lt;/p&gt;
&lt;p&gt;until语句是while语句的一种变形，原型如下：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;shell&quot; style=&quot;font-family:monospace;&quot;&gt;until 条件测试语句
do
	语句
done&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;如果条件为假则执行，否则不执行。&lt;/p&gt;
&lt;p&gt;另外还有以下语句和循环语句合用。&lt;/p&gt;
&lt;p&gt;①、break语句&lt;/p&gt;
&lt;p&gt;break语句是一个退出循环的命令，主要用于多层循环的嵌套退出，一般用法如下：&lt;/p&gt;
&lt;p&gt;break [n]&lt;/p&gt;
&lt;p&gt;其中，n用来表示跳出几层循环，默认值为1，即退出本次循环。&lt;/p&gt;
&lt;p&gt;②、continue语句&lt;/p&gt;
&lt;p&gt;continue语句与break语句有相同之处，都用于终止本次循环，区别在于，bread语句是退出整个循环而continue语句只是退出本次循环，继续执行下一循环体。continue语句原型如下：&lt;/p&gt;
&lt;p&gt;continue [n]&lt;/p&gt;
&lt;p&gt;其中，n用来表示跳出几层循环，默认值为1，即退出本次循环。&lt;/p&gt;
&lt;p&gt;③exit语句&lt;/p&gt;
&lt;p&gt;exit语句是退出正在执行的shell脚本，可以主动指定返回值，其原型如下：&lt;/p&gt;
&lt;p&gt;exit [n]&lt;/p&gt;
&lt;p&gt;其中，n是主动设定的返回值。如果未显示给定n的值，则该值默认为最后一次命令的执行状态作为返回值。&lt;/p&gt;
&lt;p style=&quot;font-weight: bold;&quot;&gt;&amp;copy; 2010, &lt;a href=&quot;http://chenzhiwei.net&quot;&gt;chenzhiwei.net&lt;/a&gt;. 版权所有.  &lt;br /&gt;本文永久链接：&lt;a title=&quot;linux shell 学习笔记(三)&quot; href=&quot;http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-3/&quot;&gt;http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-3/&lt;/a&gt;&lt;/p&gt;&lt;hr /&gt;&lt;div  class=&quot;related_post_title&quot;&gt;相关日志&lt;/div&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-4/&quot; title=&quot;linux shell 学习笔记(四)&quot;&gt;linux shell 学习笔记(四)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-2/&quot; title=&quot;linux shell学习笔记(二)&quot;&gt;linux shell学习笔记(二)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-1/&quot; title=&quot;linux shell学习笔记(一)&quot;&gt;linux shell学习笔记(一)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2010/05/vi-and-vim-under-linux/&quot; title=&quot;Linux下的VI和VIM编辑器&quot;&gt;Linux下的VI和VIM编辑器&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2010/03/install-ubuntu-under-windows/&quot; title=&quot;windows下硬盘安装ubuntu的方法&quot;&gt;windows下硬盘安装ubuntu的方法&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/399588393/chenzhiwei/feedsky/s.gif?r=http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-3/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/chenzhiwei/399588393/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/chenzhiwei/399588393/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-3/feed/</wfw:commentRss><slash:comments>1</slash:comments><description>八、shell中的循环语句
shell中的循环语句有for循环语句、while循环语句和until循环语句。

1. for循环语句
原型一：

1
2
3
4
5
for 变量 in 取值集合
for 变量 in 取值集合
do
	语句
done

原型二：

1
2
3
4
for 变量 in 文件正则表达式
do
	语句
done

原型三：

1
2
3
4
for 变量 in $*
do
	语句
done

例：

1
2
3
4
5
6
#!/bin/bash
address=(beijing tianjin shandong)
for i in ${address[*]}
do
	echo $i
done

说明：
循环输出数组中的值。
2. while循环语句
原型：

1
2
3
4
while 条件测试语句
do
	语句
done

while语句的执行过程是：先测试测试语句是否为真，若为真则执行循环体，当执行完当前命令后，再进行条件测试，直到条件结果为假，循环结束。条件测试语句既可以是test语句也可以是运行命令的返回值，若返回值大于0，则表示条件为真，否则条件为假。
例：

1
2
3
4
5
6
7
8
9
10
#!/bin/bash
str=&amp;#34;&amp;#34;
echo &amp;#34;input a str:&amp;#34;
read str
while [ $str != &amp;#34;quit&amp;#34; ]
do
	echo &amp;#34;your input is :&amp;#34;$str
	echo &amp;#34;input your str:&amp;#34;
	read str
done

说明：
3. until循环语句
until语句是while语句的一种变形，原型如下：

1
2
3
4
until 条件测试语句
do
	语句
done

如果条件为假则执行，否则不执行。
另外还有以下语句和循环语句合用。
①、break语句
break语句是一个退出循环的命令，主要用于多层循环的嵌套退出，一般用法如下：
break [n]
其中，n用来表示跳出几层循环，默认值为1，即退出本次循环。
②、continue语句
continue语句与break语句有相同之处，都用于终止本次循环，区别在于，bread语句是退出整个循环而continue语句只是退出本次循环，继续执行下一循环体。continue语句原型如下：
continue [n]
其中，n用来表示跳出几层循环，默认值为1，即退出本次循环。
③exit语句
exit语句是退出正在执行的shell脚本，可以主动指定返回值，其原型如下：
exit [n]
其中，n是主动设定的返回值。如果未显示给定n的值，则该值默认为最后一次命令的执行状态作为返回值。
&amp;#169; 2010, chenzhiwei.net. 版权所有.  本文永久链接：http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-3/相关日志linux shell 学习笔记(四)linux shell学习笔记(二)linux shell学习笔记(一)Linux下的VI和VIM编辑器windows下硬盘安装ubuntu的方法&lt;img src=&quot;http://www1.feedsky.com/t1/399588393/chenzhiwei/feedsky/s.gif?r=http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-3/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/chenzhiwei/399588393/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/chenzhiwei/399588393/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>Linux</category><category>编程相关</category><category>shell</category><category>默认分类</category><pubDate>Wed, 28 Jul 2010 15:31:58 +0800</pubDate><author>zhiwei</author><comments>http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-3/#comments</comments><guid isPermaLink="false">http://chenzhiwei.net/?p=30324</guid><dc:creator>zhiwei</dc:creator><fs:srclink>http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-3/</fs:srclink><fs:srcfeed>http://chenzhiwei.net/feed</fs:srcfeed><fs:itemid>feedsky/chenzhiwei/~8123134/399588393/5440650</fs:itemid></item><item><title>linux shell学习笔记(二)</title><link>http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-2/</link><content:encoded>&lt;p&gt;接上篇日志：&lt;a href=&quot;http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-1/&quot; target=&quot;_blank&quot;&gt;linux shell学习笔记(一)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;这篇日志主要写shell中的控制语句，有两种判断语句，if语句和case语句，学过C语言的同学一定不会陌生，很简单的用法。&lt;span id=&quot;more-30318&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;七、shell中的控制判断语句&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;1. if语句&lt;/p&gt;
&lt;p&gt;原型一&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;shell&quot; style=&quot;font-family:monospace;&quot;&gt;if 测试条件
then 语句1
fi&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;原型二&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;shell&quot; style=&quot;font-family:monospace;&quot;&gt;if 测试条件
then 语句1
else 语句2
fi&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;原型三&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
5
6
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;shell&quot; style=&quot;font-family:monospace;&quot;&gt;if 测试条件1
then 语句1
elif 测试条件2
then 语句2
else 语句3
fi&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;在if语句中一个重要的环节是编写测试条件，也就是程序执行的判断条件。if语句中可以将命令执行结果当作测试条件。例如：若命令正常结束，则表示测试成功，其返回值为0，条件测试为真；否则条件测试为假。测试条件编写一般有以下3种形式：&lt;/p&gt;
&lt;p&gt;（1）. 用test命令&lt;/p&gt;
&lt;p&gt;（2）. 用方括号把测试条件括起来。&lt;/p&gt;
&lt;p&gt;（3）. 采用[[条件表达式]]方式，条件表达式用来测试文件的属性和进行字符串比较。&lt;/p&gt;
&lt;p&gt;test命令原型如下：&lt;/p&gt;
&lt;p&gt;test 表达式&lt;/p&gt;
&lt;p&gt;test一般与系统运算搭配起来使用，它可以与如下四类运算符共同使用。&lt;/p&gt;
&lt;p&gt;第一类：字符测试运算符&lt;/p&gt;
&lt;p&gt;字符测试运算符的作用是用于测试字符串操作的返回值，具体参数如下：&lt;/p&gt;
&lt;p&gt;-z str1 ：如果字符串str1的长度为0，则测试条件为真&lt;br /&gt;
-n str1 ：如果字符串str1的长度大于0，则测试条件为真&lt;br /&gt;
str1       ：如果字符串str1不是空串，则测试条件为真&lt;br /&gt;
str1 = str2 ：如果字符串str1等于字符串str2，则测试条件为真&lt;br /&gt;
str1 != str2 ：如果字符串str1不等于字符串str2，则测试条件为真&lt;br /&gt;
str1 &amp;gt; str2 ：如果按字典顺序字符串str1排在str2之后，则测试条件为真&lt;br /&gt;
str1 &amp;lt; str2 ：如果按字典顺序字符串str1排在str2之前，则测试条件为真&lt;/p&gt;
&lt;p&gt;注：=、!=、&amp;lt;、&amp;gt;，这些符号在使用时两边要加空格&lt;/p&gt;
&lt;p&gt;例：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
5
6
7
8
9
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;shell&quot; style=&quot;font-family:monospace;&quot;&gt;#!/bin/bash
echo &amp;quot;input your address:&amp;quot;
read address
if address
then
	echo &amp;quot;your address is: &amp;quot;$address
else
	echo &amp;quot;your address is null&amp;quot;
fi&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;以上程序意思是用户输入一字符串，如果输入字符串长度大于0，则输出用户输入的字符串，否则输出空。&lt;/p&gt;
&lt;p&gt;第二类：数值测试运算符&lt;/p&gt;
&lt;p&gt;数值测试运算符主要用于数值运算时的判断，具体参数如下：&lt;/p&gt;
&lt;p&gt;num1 -eq num2 ：如果整数num1等于num2，则测试条件为真&lt;br /&gt;
num1 -ne num2 ：如果整数num1不等于num2，则测试条件为真&lt;br /&gt;
num1 -lt num2 ：如果整数num1小于num2，则测试条件为真&lt;br /&gt;
num1 -le num2 ：如果整数num1小于或等于num2，则测试条件为真&lt;br /&gt;
num1 -gt num2 ：如果整数num1大于num2，则测试条件为真&lt;br /&gt;
num1 -ge num2 ：如果整数num1大于或等于num2，则测试条件为真&lt;/p&gt;
&lt;p&gt;第三类：逻辑运算符&lt;/p&gt;
&lt;p&gt;逻辑运算符用于逻辑语句的判断，常用的逻辑运算符如下：&lt;/p&gt;
&lt;p&gt;! ：逻辑“非”，放在任意逻辑表达式的前面，全原来为真的表达式为假，原来为假的表达式为真&lt;br /&gt;
-a ：逻辑“与”，放在两个逻辑表达式之间，表示只有两个表达式都为真时，结果才为真&lt;br /&gt;
-o ：逻辑“或”，放在两个逻辑表达式之间，表示只有两个表达式都为假时，结果才为假&lt;br /&gt;
() ：圆括号可以把逻辑表达式括起来，使用之成为一个整体，优先进行运算&lt;/p&gt;
&lt;p&gt;注：逻辑表达式中运算符的优先关系如下：&amp;#8221;()&amp;#8221;&amp;gt;&amp;#8221;!&amp;#8221;&amp;gt;&amp;#8221;-a&amp;#8221;&amp;gt;&amp;#8221;-o&amp;#8221;。&lt;/p&gt;
&lt;p&gt;第四类：文件运算符&lt;/p&gt;
&lt;p&gt;文件运算符用于测试文件或目录的操作，常用文件运算符如下：&lt;/p&gt;
&lt;p&gt;-r 文件名：若文件存在并且是用户可读的，则测试条件为真&lt;br /&gt;
-w 文件名：若文件存在并且是用户可写的，则测试条件为真&lt;br /&gt;
-x 文件名：若文件存在并且是用户可执行的，则测试条件为真&lt;br /&gt;
-f  文件名：若文件存在并且是普通文件，则测试条件为真&lt;br /&gt;
-d 文件名：若文件存在并且是目录文件，则测试条件为真&lt;br /&gt;
-p 文件名：若文件存在并且是命名的FIFO文件，则测试条件为真&lt;br /&gt;
-b 文件名：若文件存在并且是块设备文件，则测试条件为真&lt;br /&gt;
-c 文件名：若文件存在并且是字符设备文件，则测试条件为真&lt;br /&gt;
-s 文件名：若文件存在并且长度大于0，则测试条件为真&lt;br /&gt;
-t 文件描述字：若文件被打开并且文件描述字是与终端设备相关的，则测试条件为真，默认的文件描述字是1。&lt;/p&gt;
&lt;p&gt;2. case语句&lt;/p&gt;
&lt;p&gt;case语句是一种多重判断语句，类似于多个if elif语句，其原型如下：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
5
6
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;shell&quot; style=&quot;font-family:monospace;&quot;&gt;case 字符串 in
	模式表达式1) 语句1;;
	模式表达式2) 语句2;;
	模式表达式3) 语句3;;
	...
esac&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;case语句执行原理是将字符串与各个模式串顺次匹配，若满足则执行，否则继续查找，如果没有匹配成功的，则不执行任何语句，直接退出。&lt;/p&gt;
&lt;p&gt;注：每个模式处理语句是以&amp;#8221;;;&amp;#8221;两个分号结束的，模式表达式应该唯一，一个模式表达式可以含有多个模式串，但它们之间要用&amp;#8221;|&amp;#8221;隔开。&lt;/p&gt;
&lt;p&gt;例：&lt;/p&gt;
&lt;p style=&quot;font-weight: bold;&quot;&gt;&amp;copy; 2010, &lt;a href=&quot;http://chenzhiwei.net&quot;&gt;chenzhiwei.net&lt;/a&gt;. 版权所有.  &lt;br /&gt;本文永久链接：&lt;a title=&quot;linux shell学习笔记(二)&quot; href=&quot;http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-2/&quot;&gt;http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-2/&lt;/a&gt;&lt;/p&gt;&lt;hr /&gt;&lt;div  class=&quot;related_post_title&quot;&gt;相关日志&lt;/div&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-4/&quot; title=&quot;linux shell 学习笔记(四)&quot;&gt;linux shell 学习笔记(四)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-3/&quot; title=&quot;linux shell 学习笔记(三)&quot;&gt;linux shell 学习笔记(三)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-1/&quot; title=&quot;linux shell学习笔记(一)&quot;&gt;linux shell学习笔记(一)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2010/05/vi-and-vim-under-linux/&quot; title=&quot;Linux下的VI和VIM编辑器&quot;&gt;Linux下的VI和VIM编辑器&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2010/03/install-ubuntu-under-windows/&quot; title=&quot;windows下硬盘安装ubuntu的方法&quot;&gt;windows下硬盘安装ubuntu的方法&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/399588394/chenzhiwei/feedsky/s.gif?r=http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-2/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/chenzhiwei/399588394/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/chenzhiwei/399588394/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-2/feed/</wfw:commentRss><slash:comments>1</slash:comments><description>接上篇日志：linux shell学习笔记(一)
这篇日志主要写shell中的控制语句，有两种判断语句，if语句和case语句，学过C语言的同学一定不会陌生，很简单的用法。
七、shell中的控制判断语句
1. if语句
原型一

1
2
3
if 测试条件
then 语句1
fi

原型二

1
2
3
4
if 测试条件
then 语句1
else 语句2
fi

原型三

1
2
3
4
5
6
if 测试条件1
then 语句1
elif 测试条件2
then 语句2
else 语句3
fi

在if语句中一个重要的环节是编写测试条件，也就是程序执行的判断条件。if语句中可以将命令执行结果当作测试条件。例如：若命令正常结束，则表示测试成功，其返回值为0，条件测试为真；否则条件测试为假。测试条件编写一般有以下3种形式：
（1）. 用test命令
（2）. 用方括号把测试条件括起来。
（3）. 采用[[条件表达式]]方式，条件表达式用来测试文件的属性和进行字符串比较。
test命令原型如下：
test 表达式
test一般与系统运算搭配起来使用，它可以与如下四类运算符共同使用。
第一类：字符测试运算符
字符测试运算符的作用是用于测试字符串操作的返回值，具体参数如下：
-z str1 ：如果字符串str1的长度为0，则测试条件为真
-n str1 ：如果字符串str1的长度大于0，则测试条件为真
str1       ：如果字符串str1不是空串，则测试条件为真
str1 = str2 ：如果字符串str1等于字符串str2，则测试条件为真
str1 != str2 ：如果字符串str1不等于字符串str2，则测试条件为真
str1 &amp;#62; str2 ：如果按字典顺序字符串str1排在str2之后，则测试条件为真
str1 &amp;#60; str2 ：如果按字典顺序字符串str1排在str2之前，则测试条件为真
注：=、!=、&amp;#60;、&amp;#62;，这些符号在使用时两边要加空格
例：

1
2
3
4
5
6
7
8
9
#!/bin/bash
echo &amp;#34;input your address:&amp;#34;
read address
if address
then
	echo &amp;#34;your address is: &amp;#34;$address
else
	echo &amp;#34;your address is null&amp;#34;
fi

以上程序意思是用户输入一字符串，如果输入字符串长度大于0，则输出用户输入的字符串，否则输出空。
第二类：数值测试运算符
数值测试运算符主要用于数值运算时的判断，具体参数如下：
num1 -eq num2 ：如果整数num1等于num2，则测试条件为真
num1 -ne num2 ：如果整数num1不等于num2，则测试条件为真
num1 -lt num2 [...]&lt;img src=&quot;http://www1.feedsky.com/t1/399588394/chenzhiwei/feedsky/s.gif?r=http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-2/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/chenzhiwei/399588394/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/chenzhiwei/399588394/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>Linux</category><category>编程相关</category><category>shell</category><category>默认分类</category><pubDate>Sun, 25 Jul 2010 18:32:00 +0800</pubDate><author>zhiwei</author><comments>http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-2/#comments</comments><guid isPermaLink="false">http://chenzhiwei.net/?p=30318</guid><dc:creator>zhiwei</dc:creator><fs:srclink>http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-2/</fs:srclink><fs:srcfeed>http://chenzhiwei.net/feed</fs:srcfeed><fs:itemid>feedsky/chenzhiwei/~8123134/399588394/5440650</fs:itemid></item><item><title>linux shell学习笔记(一)</title><link>http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-1/</link><content:encoded>&lt;p&gt;昨天逛&lt;a href=&quot;http://www.iyouf.info/&quot; target=&quot;_blank&quot;&gt;dengmin&lt;/a&gt;同学的博客，发现他把自己的php学习笔记都放在的博客上，我想了一下，感觉还是将我学习shell时做的笔记写在博客上吧，虽然很简单，但是毕竟写在纸上不如放在博客上，写在博客上自己随时都可以查看。&lt;/p&gt;
&lt;p&gt;在计算机科学中，Shell俗称壳（用来区别于核），是指“提供使用者使用界面”的软件（命令解析器）。它类似于DOS下的command.com。它接收用户命令，然后调用相应的应用程序。同时它又是一种程序设计语言。作为命令语言，它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令；作为程序设计语言，它定义了各种变量和参数，并提供了许多在高阶语言中才具有的控制结构，包括循环和分支。shell是一种解释型编程语言，这些都不重要，重要的是怎么使用它。&lt;br /&gt;
&lt;span id=&quot;more-30311&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;strong&gt;一、 执行shell脚本的方法&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;1.&lt;del datetime=&quot;2010-07-25T00:01:18+00:00&quot;&gt; 输入重定向到shell脚本，具体来讲是利用输入重定向机制，让shell解释器顺序读取每一行脚本命令，进行执行，使用原型为bash&amp;gt;脚本文件名，例如：bash&amp;gt;test.sh&lt;/del&gt;。&lt;/p&gt;
&lt;p&gt;2. 类似于方法1，不过它是以脚本文件名为参数来执行的，原型：bash test.sh 。&lt;/p&gt;
&lt;p&gt;3. 将脚本文件设置成可执行文件，直接调用执行，./test.sh 。(用chmod +x test.sh将脚本文件加上可执行权限)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;二、shell的基本语法&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;赋值一般采用以下形式：变量名=字符串&lt;/p&gt;
&lt;p&gt;1. “=”号两边是不能有空格的，不然会出错的。&lt;/p&gt;
&lt;p&gt;2. 若赋值语句中，“=”后面没有任何内容，则该变量为一个空字符串，若只声明而没赋值，则该变量默认也是一个空字符串。&lt;/p&gt;
&lt;p&gt;3. 若一个变量中含有空格、制表符、换行符，则要用双引号括起来，不然会出错。&lt;/p&gt;
&lt;p&gt;4. 在shell程序文件中，如果想引用已经定义的变量，一般要在变量名前加“$”符号，这个符号含义是告诉shell，后面是一个变量。&lt;/p&gt;
&lt;p&gt;5. 在shell变量引用中，一个变量与一个长字符串的组合，如果当前变量处在字符串的最后，可以利用直接引用的方式；如果处在中间或开头的位置，则可以用花括号将变量名包含起来。如下：&lt;br /&gt;
程序：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
5
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;shell&quot; style=&quot;font-family:monospace;&quot;&gt;#!/bin/bash
address=beijing
echo $address
echo ${address}test
echo test$address&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;输出：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;shell&quot; style=&quot;font-family:monospace;&quot;&gt;beijing
beijingtest
testbeijing&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;三、shell中的通配符(用于模式匹配)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;1. “*”符号&lt;/p&gt;
&lt;p&gt;“*”符号用于匹配字符串中0次或多次出现的字符，如：s*可以匹配shell、shanghai等。在使用“*”符号时要注意一点，在匹配文件名与路径名时，“.”符号与“\”必须显示匹配，如：*test不能匹配“.httest”文件，而要用“.*test”来匹配，同学“/home/test”需要用&amp;#8221;/*/test&amp;#8221;来匹配。&lt;/p&gt;
&lt;p&gt;2. &amp;#8220;?&amp;#8221;符号&lt;/p&gt;
&lt;p&gt;&amp;#8220;?&amp;#8221;符号仅匹配对应位置的一个字符。如：m?ke可匹配&amp;#8221;mike&amp;#8221;、&amp;#8221;make&amp;#8221;等，但不能匹配&amp;#8221;mooke&amp;#8221;。&lt;/p&gt;
&lt;p&gt;3. &amp;#8220;[]&amp;#8220;符号&lt;/p&gt;
&lt;p&gt;&amp;#8220;[]&amp;#8220;称号的作用是匹配该字符组所限定范围内的任何一个字符，方括号中的字符可以由直接级出的字符组成，如：[adehk]；也可以由表示限定范围的起始字符和终止字符及中间的连接字符&amp;#8221;-&amp;#8221;组成。如：[a-zA-H]、[0-9]等。&lt;/p&gt;
&lt;p&gt;4. &amp;#8220;!&amp;#8221;符号&lt;/p&gt;
&lt;p&gt;&amp;#8220;!&amp;#8221;符号是与&amp;#8221;[]&amp;#8220;符号配合使用的，&amp;#8221;!&amp;#8221;的作用是匹配不在方括号中列出的字符。例如：t[!a-h]st，则可表示tyst、t9st，但不能表示test。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;四、shell中的输入&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;shell中输入是由函数read实现，原型为：read 变量1 [变量2]&lt;/p&gt;
&lt;p&gt;利用read函数可以交互地为变量赋值，当然也可以通过制表符或空格为多变量赋值，说明如下：&lt;/p&gt;
&lt;p&gt;1. 如果变量个数多于输入串中字符串个数，则依次赋值，剩下变量取空值。&lt;/p&gt;
&lt;p&gt;2. 如果变量个数等于输入串中字符串个数，则一一对应赋值。&lt;/p&gt;
&lt;p&gt;3. 如果变量个数少于输入串中字符串个数，刚除依次赋值外，最后一个变量接纳剩下的字符串。&lt;/p&gt;
&lt;p&gt;例如：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
5
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;shell&quot; style=&quot;font-family:monospace;&quot;&gt;#!/bin/bash
echo &amp;quot;input your name and age:&amp;quot;
read name age
echo &amp;quot;your name is: &amp;quot;$name
echo &amp;quot;your age is: &amp;quot;$age&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;如果你输入Jim 15 则输出：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;shell&quot; style=&quot;font-family:monospace;&quot;&gt;input your name and age:
your name is: Jim
your age is: 15&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;五、shell中的输出&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;shell中输出是由echo函数实现的，echo可直接输出其后面所跟变量的值或直接输出其后面的字符串。echo函数后面以空格隔开，以换行符终止。如果数据之间要保留多个空格，则要用双引号把它们括起来以便shell对它们进行正确的操作。另：echo函数还定义了一组转义字符，在使用转义字符时要加入&amp;#8221;-e&amp;#8221;选项。其转义字符如下：&lt;/p&gt;
&lt;p&gt;&amp;#8220;\a&amp;#8221; ：响铃报警，&amp;#8221;\b&amp;#8221; ：后退一字符，&amp;#8221;\f&amp;#8221; ：换页，&amp;#8221;\n&amp;#8221; ：显示换行，&amp;#8221;\t&amp;#8221; ：制表符，&amp;#8221;\v&amp;#8221; ：垂直制表符，&amp;#8221;\r&amp;#8221; ：回车符，&amp;#8221;\\&amp;#8221; ：反斜线。&lt;br /&gt;
例如：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
5
6
7
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;shell&quot; style=&quot;font-family:monospace;&quot;&gt;#!/bin/bash
echo -e hello,'\n'world!
echo hello,'\n'world!
echo '-e' hello,'\n'world!
echo -e hello,&amp;quot;\n&amp;quot;world!
echo -e hello,\nworld!
echo hello,\nworld!&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;输出：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
5
6
7
8
9
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;shell&quot; style=&quot;font-family:monospace;&quot;&gt;hello,
world!
hello,\nworld!
hello,
world!
hello,
world!
hello,nworld!
hello,nworld!&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;六、shell中的数组&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;shell支持一维数组，但并不限定数组大小，数组下标从0开始。&lt;/p&gt;
&lt;p&gt;在操作数组时，取值方式是：!{数组名[下标]} ；赋值方式是：数组名[下标]=值 (为单个数组元素赋值)；如果要对整个数组的所有元素赋值，可以采用：数组名=(值1，值2，值3，&amp;#8230;)，值与值之间要用空格隔开。&lt;/p&gt;
&lt;p&gt;遍历数组除用循环外还可用：“数组名[*]”或“数组名[@]”，例如：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
5
6
7
8
9
10
11
12
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;shell&quot; style=&quot;font-family:monospace;&quot;&gt;#!/bin/bash
array1[0]=beijing
array1[1]=shanghai
array2=(guangzhou,shenzhen,chengdu)
echo &amp;quot;\${array1[0]} = &amp;quot; ${array1[0]}
echo &amp;quot;\$array1[1] = &amp;quot;$array1[1]
echo &amp;quot;\${array1[*]} = &amp;quot;${array1[*]}
echo &amp;quot;\$array1 = &amp;quot;$array1
echo &amp;quot;\${array2[*]} = &amp;quot;${array2[*]}
echo &amp;quot;\${array2[@]} = &amp;quot;${array2[@]}
echo &amp;quot;\$array2 = &amp;quot;$array2
echo &amp;quot;\$array2[1] = &amp;quot;$array2[1]&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;输出：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
5
6
7
8
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;shell&quot; style=&quot;font-family:monospace;&quot;&gt;${array1[0]} =  beijing
$array1[1] = beijing[1]
${array1[*]} = beijing shanghai
$array1 = beijing
${array2[*]} = guangzhou,shenzhen,chengdu
${array2[@]} = guangzhou,shenzhen,chengdu
$array2 = guangzhou,shenzhen,chengdu
$array2[1] = guangzhou,shenzhen,chengdu[1]&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;注：数组的赋值与输出有点麻烦。&lt;br /&gt;
对于数组修改操作，可以再对其重新赋值；但如果要删除一个已经赋值后的元素则需要借助一个外部命令：unset，如：unset array[0]可清空下标为0的元素，此时数组大小减一；unset array[@]可以清空整个数组元素所有元素。例如：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
5
6
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;shell&quot; style=&quot;font-family:monospace;&quot;&gt;#!/bin/bash
address=(beijing,shanghai,shandong)
address[0]=nanjing
echo ${address[*]}
unset address[0]
echo ${address[*]}&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;输出：&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;shell&quot; style=&quot;font-family:monospace;&quot;&gt;beijing shanghai shandong
shanghai shandong&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;注：关于数组输入与输出规则比较多，得多练习掌握。&lt;/p&gt;
&lt;p style=&quot;font-weight: bold;&quot;&gt;&amp;copy; 2010, &lt;a href=&quot;http://chenzhiwei.net&quot;&gt;chenzhiwei.net&lt;/a&gt;. 版权所有.  &lt;br /&gt;本文永久链接：&lt;a title=&quot;linux shell学习笔记(一)&quot; href=&quot;http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-1/&quot;&gt;http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-1/&lt;/a&gt;&lt;/p&gt;&lt;hr /&gt;&lt;div  class=&quot;related_post_title&quot;&gt;相关日志&lt;/div&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-4/&quot; title=&quot;linux shell 学习笔记(四)&quot;&gt;linux shell 学习笔记(四)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-3/&quot; title=&quot;linux shell 学习笔记(三)&quot;&gt;linux shell 学习笔记(三)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-2/&quot; title=&quot;linux shell学习笔记(二)&quot;&gt;linux shell学习笔记(二)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2010/05/vi-and-vim-under-linux/&quot; title=&quot;Linux下的VI和VIM编辑器&quot;&gt;Linux下的VI和VIM编辑器&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2010/03/install-ubuntu-under-windows/&quot; title=&quot;windows下硬盘安装ubuntu的方法&quot;&gt;windows下硬盘安装ubuntu的方法&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/399588395/chenzhiwei/feedsky/s.gif?r=http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-1/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/chenzhiwei/399588395/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/chenzhiwei/399588395/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-1/feed/</wfw:commentRss><slash:comments>7</slash:comments><description>昨天逛dengmin同学的博客，发现他把自己的php学习笔记都放在的博客上，我想了一下，感觉还是将我学习shell时做的笔记写在博客上吧，虽然很简单，但是毕竟写在纸上不如放在博客上，写在博客上自己随时都可以查看。
在计算机科学中，Shell俗称壳（用来区别于核），是指“提供使用者使用界面”的软件（命令解析器）。它类似于DOS下的command.com。它接收用户命令，然后调用相应的应用程序。同时它又是一种程序设计语言。作为命令语言，它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令；作为程序设计语言，它定义了各种变量和参数，并提供了许多在高阶语言中才具有的控制结构，包括循环和分支。shell是一种解释型编程语言，这些都不重要，重要的是怎么使用它。

一、 执行shell脚本的方法
1. 输入重定向到shell脚本，具体来讲是利用输入重定向机制，让shell解释器顺序读取每一行脚本命令，进行执行，使用原型为bash&amp;#62;脚本文件名，例如：bash&amp;#62;test.sh。
2. 类似于方法1，不过它是以脚本文件名为参数来执行的，原型：bash test.sh 。
3. 将脚本文件设置成可执行文件，直接调用执行，./test.sh 。(用chmod +x test.sh将脚本文件加上可执行权限)
二、shell的基本语法
赋值一般采用以下形式：变量名=字符串
1. “=”号两边是不能有空格的，不然会出错的。
2. 若赋值语句中，“=”后面没有任何内容，则该变量为一个空字符串，若只声明而没赋值，则该变量默认也是一个空字符串。
3. 若一个变量中含有空格、制表符、换行符，则要用双引号括起来，不然会出错。
4. 在shell程序文件中，如果想引用已经定义的变量，一般要在变量名前加“$”符号，这个符号含义是告诉shell，后面是一个变量。
5. 在shell变量引用中，一个变量与一个长字符串的组合，如果当前变量处在字符串的最后，可以利用直接引用的方式；如果处在中间或开头的位置，则可以用花括号将变量名包含起来。如下：
程序：

1
2
3
4
5
#!/bin/bash
address=beijing
echo $address
echo ${address}test
echo test$address

输出：

1
2
3
beijing
beijingtest
testbeijing

三、shell中的通配符(用于模式匹配)
1. “*”符号
“*”符号用于匹配字符串中0次或多次出现的字符，如：s*可以匹配shell、shanghai等。在使用“*”符号时要注意一点，在匹配文件名与路径名时，“.”符号与“\”必须显示匹配，如：*test不能匹配“.httest”文件，而要用“.*test”来匹配，同学“/home/test”需要用&amp;#8221;/*/test&amp;#8221;来匹配。
2. &amp;#8220;?&amp;#8221;符号
&amp;#8220;?&amp;#8221;符号仅匹配对应位置的一个字符。如：m?ke可匹配&amp;#8221;mike&amp;#8221;、&amp;#8221;make&amp;#8221;等，但不能匹配&amp;#8221;mooke&amp;#8221;。
3. &amp;#8220;[]&amp;#8220;符号
&amp;#8220;[]&amp;#8220;称号的作用是匹配该字符组所限定范围内的任何一个字符，方括号中的字符可以由直接级出的字符组成，如：[adehk]；也可以由表示限定范围的起始字符和终止字符及中间的连接字符&amp;#8221;-&amp;#8221;组成。如：[a-zA-H]、[0-9]等。
4. &amp;#8220;!&amp;#8221;符号
&amp;#8220;!&amp;#8221;符号是与&amp;#8221;[]&amp;#8220;符号配合使用的，&amp;#8221;!&amp;#8221;的作用是匹配不在方括号中列出的字符。例如：t[!a-h]st，则可表示tyst、t9st，但不能表示test。
四、shell中的输入
shell中输入是由函数read实现，原型为：read 变量1 [变量2]
利用read函数可以交互地为变量赋值，当然也可以通过制表符或空格为多变量赋值，说明如下：
1. 如果变量个数多于输入串中字符串个数，则依次赋值，剩下变量取空值。
2. 如果变量个数等于输入串中字符串个数，则一一对应赋值。
3. 如果变量个数少于输入串中字符串个数，刚除依次赋值外，最后一个变量接纳剩下的字符串。
例如：

1
2
3
4
5
#!/bin/bash
echo &amp;#34;input your name and age:&amp;#34;
read name age
echo &amp;#34;your name is: &amp;#34;$name
echo &amp;#34;your age is: &amp;#34;$age

如果你输入Jim 15 则输出：

1
2
3
input your name and age:
your name is: Jim
your age is: 15

五、shell中的输出
shell中输出是由echo函数实现的，echo可直接输出其后面所跟变量的值或直接输出其后面的字符串。echo函数后面以空格隔开，以换行符终止。如果数据之间要保留多个空格，则要用双引号把它们括起来以便shell对它们进行正确的操作。另：echo函数还定义了一组转义字符，在使用转义字符时要加入&amp;#8221;-e&amp;#8221;选项。其转义字符如下：
&amp;#8220;\a&amp;#8221; ：响铃报警，&amp;#8221;\b&amp;#8221; [...]&lt;img src=&quot;http://www1.feedsky.com/t1/399588395/chenzhiwei/feedsky/s.gif?r=http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-1/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/chenzhiwei/399588395/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/chenzhiwei/399588395/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>Linux</category><category>shell</category><category>默认分类</category><pubDate>Sun, 25 Jul 2010 09:32:43 +0800</pubDate><author>zhiwei</author><comments>http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-1/#comments</comments><guid isPermaLink="false">http://chenzhiwei.net/?p=30311</guid><dc:creator>zhiwei</dc:creator><fs:srclink>http://chenzhiwei.net/2010/07/linux-shell-study-notes-part-1/</fs:srclink><fs:srcfeed>http://chenzhiwei.net/feed</fs:srcfeed><fs:itemid>feedsky/chenzhiwei/~8123134/399588395/5440650</fs:itemid></item><item><title>wordpress主题常用的代码</title><link>http://chenzhiwei.net/2010/07/wordpress-useful-code/</link><content:encoded>&lt;p&gt;很多同学的wordpress博客主题侧边栏都有最新文章、随机文章、最新评论等等内容，而单篇文章下方也会加上版权信息，我之前添加版权信息就是在写每篇文章时，在最后加上，但是这样太麻烦，自己在网上搜索一下，然后又仿照一些知名博客的相应设置自己也在博客文章页面加上了版权信息，由于最近比较忙，一直没空写出来，今天就把它写出来与大家分享一下。&lt;br /&gt;
&lt;span id=&quot;more-30304&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;strong&gt;1. 最新/随机文章&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
5
6
7
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;php&quot; style=&quot;font-family:monospace;&quot;&gt;global $post;
	 $myposts = get_posts('numberposts=9&amp;amp;offset=1&amp;amp;orderby=rand');
	 foreach($myposts as $post) :
	   setup_postdata($post);
	 ?&amp;gt;
		&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt; the_permalink&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;?&amp;gt;&lt;/span&gt;&amp;quot; title=&amp;quot;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt; the_title&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;?&amp;gt;&lt;/span&gt;&amp;quot;&amp;gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt; the_title&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;?&amp;gt;&lt;/span&gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
	 &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;endforeach&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;最新/随机文章用的是wordpress现成的函数调用，上述代码中的numberposts=9是指显示9篇文章，orderby=rand意思是随机显示，如果是orderby=date就是最新文章了，当然还得order=desc，意思是按日期降序排列，懂sql语言的同学很容易就能看明白，&lt;a href=&quot;http://codex.wordpress.org/Function_Reference/get_posts&quot; target=&quot;_blank&quot;&gt;这里&lt;/a&gt;有更详细的官方介绍，不过是英文的。这个&lt;a href=&quot;http://codex.wordpress.org/Function_Reference/wp_get_recent_posts&quot; target=&quot;_blank&quot;&gt;地方&lt;/a&gt;是获得最新文章的另一种方法。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. 最新评论&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
5
6
7
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;php&quot; style=&quot;font-family:monospace;&quot;&gt;$comments = get_comments('number=9&amp;amp;$status=approve&amp;amp;offset=1');
		  foreach($comments as $comm) :
			$comm-&amp;gt;comment_content=mb_substr($comm-&amp;gt;comment_content,0,20);
		?&amp;gt;
		  &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;get_permalink&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$comm&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #004000;&quot;&gt;comment_post_ID&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;?&amp;gt;&lt;/span&gt;#comment-&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$comm&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #004000;&quot;&gt;comment_ID&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;?&amp;gt;&lt;/span&gt;&amp;quot; title=&amp;quot;view the entire comment by &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$comm&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #004000;&quot;&gt;comment_author&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;?&amp;gt;&lt;/span&gt;&amp;quot;&amp;gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$comm&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #004000;&quot;&gt;comment_content&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;?&amp;gt;&lt;/span&gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
		&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt;
		  &lt;span style=&quot;color: #b1b100;&quot;&gt;endforeach&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;最新评论这个代码用了我很长时间才写好，一般网上的方法都是直接去查询数据库，写一大堆代码，太麻烦了，我在&lt;a href=&quot;http://codex.wordpress.org/Function_Reference/get_comments&quot; target=&quot;_blank&quot;&gt;wordpress官方文档&lt;/a&gt;上找到了这个方法，很好用，不过总是最后一条评论显示不出来，目前也没有找到原因。代码说明我就不写了，很简单的。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. 版权信息&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
5
6
7
8
9
10
11
12
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;php&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt; insertNote&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000088;&quot;&gt;$content&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;is_single&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;||&lt;/span&gt;is_feed&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;
			&lt;span style=&quot;color: #000088;&quot;&gt;$content&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;.=&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;'&amp;lt;p style=&amp;quot;font-weight: bold;&amp;quot;&amp;gt;&amp;amp;copy; '&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;.&lt;/span&gt; get_the_time&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;'Y'&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;', &amp;lt;a href=&amp;quot;http://chenzhiwei.net&amp;quot;&amp;gt;chenzhiwei.net&amp;lt;/a&amp;gt;. 版权所有.  &amp;lt;br /&amp;gt;'&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
			&lt;span style=&quot;color: #000088;&quot;&gt;$content&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;.=&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;''&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
			&lt;span style=&quot;color: #000088;&quot;&gt;$content&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;.=&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;'本文永久链接：&amp;lt;a title=&amp;quot;'&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;.&lt;/span&gt;get_the_title&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;'&amp;quot; href=&amp;quot;'&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;.&lt;/span&gt;get_permalink&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;'&amp;quot;&amp;gt;'&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;.&lt;/span&gt;get_permalink&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;'&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;'&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
        &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;is_feed&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;
			&lt;span style=&quot;color: #000088;&quot;&gt;$content&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;.=&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;quot;&amp;lt;hr /&amp;gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
        &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span style=&quot;color: #b1b100;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #000088;&quot;&gt;$content&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;
add_filter &lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;'the_content'&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;'insertNote'&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;版权信息是在主题支持函数里写一个函数，就可以了。也可以将feed里也加入版权信息。以上代码就是我博客里的用，可以参考一下。相关图片如下：&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;alignnone&quot; title=&quot;feed 版权信息&quot; src=&quot;http://farm5.static.flickr.com/4119/4811292687_0da7d9b079_b.jpg&quot; alt=&quot;single&quot; width=&quot;590&quot; height=&quot;280&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;alignnone&quot; title=&quot;single page 版权信息&quot; src=&quot;http://farm5.static.flickr.com/4122/4811292695_8c31c8ac67_b.jpg&quot; alt=&quot;single&quot; width=&quot;563&quot; height=&quot;145&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4. 存档页面&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;php&quot; style=&quot;font-family:monospace;&quot;&gt;&amp;lt;div class=&amp;quot;archive&amp;quot;&amp;gt;
&amp;nbsp;
	&amp;lt;strong&amp;gt;by page:&amp;lt;/strong&amp;gt;
		&amp;lt;ul&amp;gt;
			&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt; wp_list_pages&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;'title_li='&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;?&amp;gt;&lt;/span&gt;
		&amp;lt;/ul&amp;gt;
&amp;nbsp;
	&amp;lt;strong&amp;gt;by month:&amp;lt;/strong&amp;gt;
		&amp;lt;ul&amp;gt;
			&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt; wp_get_archives&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;'type=monthly'&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;?&amp;gt;&lt;/span&gt;
		&amp;lt;/ul&amp;gt;
&amp;nbsp;
	&amp;lt;strong&amp;gt;by category:&amp;lt;/strong&amp;gt;
		&amp;lt;ul&amp;gt;
			&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt; wp_list_categories&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;'sort_column=name&amp;amp;title_li='&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;?&amp;gt;&lt;/span&gt;
		&amp;lt;/ul&amp;gt;
&amp;nbsp;
&amp;lt;/div&amp;gt;
&amp;nbsp;
&amp;lt;div class=&amp;quot;archive&amp;quot;&amp;gt;
&amp;nbsp;
	&amp;lt;strong&amp;gt;by post:&amp;lt;/strong&amp;gt;
		&amp;lt;ul&amp;gt;
			&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt; wp_get_archives&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;'type=postbypost&amp;amp;limit=100'&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;?&amp;gt;&lt;/span&gt; 
		&amp;lt;/ul&amp;gt;
&amp;lt;/div&amp;gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;有些同学一直在用插件实现文档存档，不过，我认为博客里最好还是少用插件，这样可以减轻服务器负担，也减少了升级插件的麻烦，下面就是我存档页面用的代码。&lt;/p&gt;
&lt;p&gt;以上就是我博客里用到的一些代码，以后再用其他代码时，我会及时补充上来。&lt;/p&gt;
&lt;p style=&quot;font-weight: bold;&quot;&gt;&amp;copy; 2010, &lt;a href=&quot;http://chenzhiwei.net&quot;&gt;chenzhiwei.net&lt;/a&gt;. 版权所有.  &lt;br /&gt;本文永久链接：&lt;a title=&quot;wordpress主题常用的代码&quot; href=&quot;http://chenzhiwei.net/2010/07/wordpress-useful-code/&quot;&gt;http://chenzhiwei.net/2010/07/wordpress-useful-code/&lt;/a&gt;&lt;/p&gt;&lt;hr /&gt;&lt;div  class=&quot;related_post_title&quot;&gt;相关日志&lt;/div&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2009/11/move-blog-again/&quot; title=&quot;博客又一次搬家&quot;&gt;博客又一次搬家&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2009/04/cannot-modify-header-information/&quot; title=&quot;Cannot modify header information的问题&quot;&gt;Cannot modify header information的问题&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2010/08/my-opinions-about-the-social-network/&quot; title=&quot;关于社交网络-我的一点看法&quot;&gt;关于社交网络-我的一点看法&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2010/04/recent-thoughts/&quot; title=&quot;最近的一些思考&quot;&gt;最近的一些思考&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2010/03/change-blog-domain-name/&quot; title=&quot;博客更换域名&quot;&gt;博客更换域名&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/399588396/chenzhiwei/feedsky/s.gif?r=http://chenzhiwei.net/2010/07/wordpress-useful-code/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/chenzhiwei/399588396/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/chenzhiwei/399588396/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://chenzhiwei.net/2010/07/wordpress-useful-code/feed/</wfw:commentRss><slash:comments>6</slash:comments><description>很多同学的wordpress博客主题侧边栏都有最新文章、随机文章、最新评论等等内容，而单篇文章下方也会加上版权信息，我之前添加版权信息就是在写每篇文章时，在最后加上，但是这样太麻烦，自己在网上搜索一下，然后又仿照一些知名博客的相应设置自己也在博客文章页面加上了版权信息，由于最近比较忙，一直没空写出来，今天就把它写出来与大家分享一下。

1. 最新/随机文章

1
2
3
4
5
6
7
global $post;
	 $myposts = get_posts('numberposts=9&amp;#38;offset=1&amp;#38;orderby=rand');
	 foreach($myposts as $post) :
	   setup_postdata($post);
	 ?&amp;#62;
		&amp;#60;li&amp;#62;&amp;#60;a href=&amp;#34;&amp;#60;?php the_permalink&amp;#40;&amp;#41;; ?&amp;#62;&amp;#34; title=&amp;#34;&amp;#60;?php the_title&amp;#40;&amp;#41;; ?&amp;#62;&amp;#34;&amp;#62;&amp;#60;?php the_title&amp;#40;&amp;#41;; ?&amp;#62;&amp;#60;/a&amp;#62;&amp;#60;/li&amp;#62;
	 &amp;#60;?php endforeach;

最新/随机文章用的是wordpress现成的函数调用，上述代码中的numberposts=9是指显示9篇文章，orderby=rand意思是随机显示，如果是orderby=date就是最新文章了，当然还得order=desc，意思是按日期降序排列，懂sql语言的同学很容易就能看明白，这里有更详细的官方介绍，不过是英文的。这个地方是获得最新文章的另一种方法。
2. 最新评论

1
2
3
4
5
6
7
$comments = get_comments('number=9&amp;#38;$status=approve&amp;#38;offset=1');
		  foreach($comments as $comm) :
			$comm-&amp;#62;comment_content=mb_substr($comm-&amp;#62;comment_content,0,20);
		?&amp;#62;
		  &amp;#60;li&amp;#62;&amp;#60;a href=&amp;#34;&amp;#60;?php echo&amp;#40;get_permalink&amp;#40;$comm-&amp;#62;comment_post_ID&amp;#41;&amp;#41;; ?&amp;#62;#comment-&amp;#60;?php echo&amp;#40;$comm-&amp;#62;comment_ID&amp;#41;; ?&amp;#62;&amp;#34; title=&amp;#34;view the entire comment by &amp;#60;?php echo&amp;#40;$comm-&amp;#62;comment_author&amp;#41;; ?&amp;#62;&amp;#34;&amp;#62;&amp;#60;?php echo&amp;#40;$comm-&amp;#62;comment_content&amp;#41;; ?&amp;#62;&amp;#60;/a&amp;#62;&amp;#60;/li&amp;#62;
		&amp;#60;?php
		  endforeach;

最新评论这个代码用了我很长时间才写好，一般网上的方法都是直接去查询数据库，写一大堆代码，太麻烦了，我在wordpress官方文档上找到了这个方法，很好用，不过总是最后一条评论显示不出来，目前也没有找到原因。代码说明我就不写了，很简单的。
3. 版权信息

1
2
3
4
5
6
7
8
9
10
11
12
function insertNote&amp;#40;$content&amp;#41; &amp;#123;
  [...]&lt;img src=&quot;http://www1.feedsky.com/t1/399588396/chenzhiwei/feedsky/s.gif?r=http://chenzhiwei.net/2010/07/wordpress-useful-code/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/chenzhiwei/399588396/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/chenzhiwei/399588396/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>博客</category><category>wordpress</category><category>php</category><category>建站相关</category><category>默认分类</category><pubDate>Tue, 20 Jul 2010 17:54:49 +0800</pubDate><author>zhiwei</author><comments>http://chenzhiwei.net/2010/07/wordpress-useful-code/#comments</comments><guid isPermaLink="false">http://chenzhiwei.net/?p=30304</guid><dc:creator>zhiwei</dc:creator><fs:srclink>http://chenzhiwei.net/2010/07/wordpress-useful-code/</fs:srclink><fs:srcfeed>http://chenzhiwei.net/feed</fs:srcfeed><fs:itemid>feedsky/chenzhiwei/~8123134/399588396/5440650</fs:itemid></item><item><title>推荐使用7-Zip软件进行解压缩</title><link>http://chenzhiwei.net/2010/06/recommend-to-use-7-zip-to-extract-and-compress/</link><content:encoded>&lt;p&gt;提到解压缩，我想各位同学对Winrar不会陌生吧，在中国大陆的绝大多数电脑上都会安装这个解压缩软件。Winrar是一个共享(收费)软件，我们习惯了使用盗版的Winrar，所以可能会有一些人觉得.rar格式的压缩文件才是标准，其实这是错误的。如果你使用过Linux，你会发现在Linux下，很多.rar文件都不能在Linux下正常解压缩。作为一个开源软件的支持者，我对Winrar这种封闭的软件持鄙视态度，这也是我今天写这篇文章的目的。&lt;span id=&quot;more-30254&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;也许你一直都很好奇，为什么从一些正规网站下载下来的压缩包都是.zip格式的，而我们常用的都是.rar格式的，现在我就给你说下原因。.zip才是压缩文件的标准，所有的操作系统都支持.zip压缩文件格式，但并不是所有的操作系统都支持.rar压缩文件格式。关于压缩文件的由来及.zip和.rar文件格式的说明请移步此处：&lt;a href=&quot;http://hi.baidu.com/flasherfffff/blog/item/212e48d7a76f21dfa144df01.html&quot; target=&quot;_blank&quot;&gt;《悲壮的.zip》&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;看完&lt;a href=&quot;http://hi.baidu.com/flasherfffff/blog/item/212e48d7a76f21dfa144df01.html&quot; target=&quot;_blank&quot;&gt;《悲 壮的.zip》&lt;/a&gt;之后，你对压缩文件相关知识应该有一定了解了，下面我就简单介绍一下7-Zip软件，7-Zip软件基于 GNU 次要公共许可协议(Lesser General Public License) 之下发布，是一款完全免费的压缩解压软件。7-Zip软件支持现在大多数压缩文件格式，包括.rar，并且还有支持大多数操作系统，软件性能要比Winrar好，我电脑用Winrar同时压缩两个300M以上的图片目录就会出现假死现象，而用7-Zip软件就不会出现假死现象(这可能也和我用的是盗版软件有关)。在多次测试之后，我最终选择使用7-Zip软件作为我电脑的唯一解压缩软件。此外，还有人专门为7-Zip软件制作了主题，自己也可以制件主题，制作方法很简单，只要PS几张.ico图片就行了。&lt;/p&gt;
&lt;p&gt;关于7-Zip的详细介绍：7-Zip 是一款号称有着现今最高压缩比的压缩软件，它不仅支持独有的 7z 文件格式，而且还支持各种其它压缩文件格式，其中包括 ZIP,  RAR, CAB, GZIP, BZIP2和 TAR 等等。此软件压缩的压缩比要比普通 ZIP 文件高  30-50%，但是要以压缩时间为代价。而且此软件界面和各种操作（含自解压缩程序和右键菜单等等）都简洁扼要，可以看出软件作者追求的是简洁实用之风 格。&lt;/p&gt;
&lt;p&gt;如果你已经使用了7-Zip软件，那么请继续支持这个开源软件，如果你没有使用7-Zip软件，那么你不妨安装一下试试该软件。我是强烈推荐使用这个开源解压缩软件，&lt;span style=&quot;color: #ff0000;&quot;&gt;本人始终认为只要是软件就应该开放源代码&lt;/span&gt;，我们还有很多方式来进行软件商业化，那些封闭的软件早晚会被淘汰的。&lt;/p&gt;
&lt;p&gt;关于7-Zip软件的使用方法，网上有很多说明，在此我就不多说了。有兴趣的同学可以围观&lt;a href=&quot;http://7z.sparanoid.com/&quot; target=&quot;_blank&quot;&gt;7-Zip的中文官方站点&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;可以从这里下载7-Zip中文版：http://sparanoid.com/lab/7z/&lt;br /&gt;
也可以下载7-Zip汉化版：http://www.xiazaiba.com/html/1481.html&lt;/p&gt;
&lt;p&gt;关于7-zip主题美化介绍：http://www.appinn.com/7-zip-theme-manager/&lt;/p&gt;
&lt;p style=&quot;font-weight: bold;&quot;&gt;&amp;copy; 2010, &lt;a href=&quot;http://chenzhiwei.net&quot;&gt;chenzhiwei.net&lt;/a&gt;. 版权所有.  &lt;br /&gt;本文永久链接：&lt;a title=&quot;推荐使用7-Zip软件进行解压缩&quot; href=&quot;http://chenzhiwei.net/2010/06/recommend-to-use-7-zip-to-extract-and-compress/&quot;&gt;http://chenzhiwei.net/2010/06/recommend-to-use-7-zip-to-extract-and-compress/&lt;/a&gt;&lt;/p&gt;&lt;hr /&gt;&lt;div  class=&quot;related_post_title&quot;&gt;随机日志&lt;/div&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2009/03/use-reader-to-read-news/&quot; title=&quot;使用阅读器订阅文章&quot;&gt;使用阅读器订阅文章&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2009/09/update-blog-sina-miniblog-yahoo-meme/&quot; title=&quot;很久没有更新博客了&quot;&gt;很久没有更新博客了&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2009/06/can-access-to-blog-pictures/&quot; title=&quot;关于网站上的图片不能显示的问题&quot;&gt;关于网站上的图片不能显示的问题&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2010/01/2010-is-a-new-start/&quot; title=&quot;2010又是一个新的开始&quot;&gt;2010又是一个新的开始&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2010/08/my-opinions-about-the-social-network/&quot; title=&quot;关于社交网络-我的一点看法&quot;&gt;关于社交网络-我的一点看法&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/399588397/chenzhiwei/feedsky/s.gif?r=http://chenzhiwei.net/2010/06/recommend-to-use-7-zip-to-extract-and-compress/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/chenzhiwei/399588397/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/chenzhiwei/399588397/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://chenzhiwei.net/2010/06/recommend-to-use-7-zip-to-extract-and-compress/feed/</wfw:commentRss><slash:comments>20</slash:comments><description>提到解压缩，我想各位同学对Winrar不会陌生吧，在中国大陆的绝大多数电脑上都会安装这个解压缩软件。Winrar是一个共享(收费)软件，我们习惯了使用盗版的Winrar，所以可能会有一些人觉得.rar格式的压缩文件才是标准，其实这是错误的。如果你使用过Linux，你会发现在Linux下，很多.rar文件都不能在Linux下正常解压缩。作为一个开源软件的支持者，我对Winrar这种封闭的软件持鄙视态度，这也是我今天写这篇文章的目的。
也许你一直都很好奇，为什么从一些正规网站下载下来的压缩包都是.zip格式的，而我们常用的都是.rar格式的，现在我就给你说下原因。.zip才是压缩文件的标准，所有的操作系统都支持.zip压缩文件格式，但并不是所有的操作系统都支持.rar压缩文件格式。关于压缩文件的由来及.zip和.rar文件格式的说明请移步此处：《悲壮的.zip》。
看完《悲 壮的.zip》之后，你对压缩文件相关知识应该有一定了解了，下面我就简单介绍一下7-Zip软件，7-Zip软件基于 GNU 次要公共许可协议(Lesser General Public License) 之下发布，是一款完全免费的压缩解压软件。7-Zip软件支持现在大多数压缩文件格式，包括.rar，并且还有支持大多数操作系统，软件性能要比Winrar好，我电脑用Winrar同时压缩两个300M以上的图片目录就会出现假死现象，而用7-Zip软件就不会出现假死现象(这可能也和我用的是盗版软件有关)。在多次测试之后，我最终选择使用7-Zip软件作为我电脑的唯一解压缩软件。此外，还有人专门为7-Zip软件制作了主题，自己也可以制件主题，制作方法很简单，只要PS几张.ico图片就行了。
关于7-Zip的详细介绍：7-Zip 是一款号称有着现今最高压缩比的压缩软件，它不仅支持独有的 7z 文件格式，而且还支持各种其它压缩文件格式，其中包括 ZIP,  RAR, CAB, GZIP, BZIP2和 TAR 等等。此软件压缩的压缩比要比普通 ZIP 文件高  30-50%，但是要以压缩时间为代价。而且此软件界面和各种操作（含自解压缩程序和右键菜单等等）都简洁扼要，可以看出软件作者追求的是简洁实用之风 格。
如果你已经使用了7-Zip软件，那么请继续支持这个开源软件，如果你没有使用7-Zip软件，那么你不妨安装一下试试该软件。我是强烈推荐使用这个开源解压缩软件，本人始终认为只要是软件就应该开放源代码，我们还有很多方式来进行软件商业化，那些封闭的软件早晚会被淘汰的。
关于7-Zip软件的使用方法，网上有很多说明，在此我就不多说了。有兴趣的同学可以围观7-Zip的中文官方站点。
可以从这里下载7-Zip中文版：http://sparanoid.com/lab/7z/
也可以下载7-Zip汉化版：http://www.xiazaiba.com/html/1481.html
关于7-zip主题美化介绍：http://www.appinn.com/7-zip-theme-manager/
&amp;#169; 2010, chenzhiwei.net. 版权所有.  本文永久链接：http://chenzhiwei.net/2010/06/recommend-to-use-7-zip-to-extract-and-compress/随机日志搜狗浏览器，很好很强大[转]8句话的人生宝典(中英文)博客又一次搬家运行在Windows下的Portable Ubuntu很久没有更新博客了&lt;img src=&quot;http://www1.feedsky.com/t1/399588397/chenzhiwei/feedsky/s.gif?r=http://chenzhiwei.net/2010/06/recommend-to-use-7-zip-to-extract-and-compress/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/chenzhiwei/399588397/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/chenzhiwei/399588397/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>开源</category><category>7-zip</category><category>软件应用</category><category>压缩</category><pubDate>Sat, 26 Jun 2010 20:04:56 +0800</pubDate><author>zhiwei</author><comments>http://chenzhiwei.net/2010/06/recommend-to-use-7-zip-to-extract-and-compress/#comments</comments><guid isPermaLink="false">http://chenzhiwei.net/?p=30254</guid><dc:creator>zhiwei</dc:creator><fs:srclink>http://chenzhiwei.net/2010/06/recommend-to-use-7-zip-to-extract-and-compress/</fs:srclink><fs:srcfeed>http://chenzhiwei.net/feed</fs:srcfeed><fs:itemid>feedsky/chenzhiwei/~8123134/399588397/5440650</fs:itemid></item><item><title>博客上添加twitter挂件的方法-超级简单</title><link>http://chenzhiwei.net/2010/06/add-twitter-gadget-on-your-blog/</link><content:encoded>&lt;p&gt;最近一不小心发现原来在博客上添加twitter挂件很简单。只需要一个twitter api  地址，几行代码就可以了，现在贴出来与各位同学分享。以下是相关说明。&lt;/p&gt;
&lt;p&gt;假设你的twitter api地址是：http://abc.com/api/&lt;/p&gt;
&lt;p&gt;只需要将以下代码第六行中的&lt;span style=&quot;color: #ff0000;&quot;&gt;twitter_username&lt;/span&gt;改为你自己的twitter用户名，其中的&lt;span style=&quot;color: #ff0000;&quot;&gt;count=2&lt;/span&gt;是说明只显示最新的两条推。你可以根据自己的需求而适当更改。将这几行代码加到&amp;lt;head&amp;gt;&amp;lt;/head&amp;gt;之间，当然，你也可以加到主题的function.php或其他.php文件里面。看完以下代码后你会发现，只需稍做修改就可以运用到静态网页中了。&lt;span id=&quot;more-30219&quot;&gt;&lt;/span&gt;&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
5
6
7
8
9
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;php&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt; twitter_show&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;?&amp;gt;&lt;/span&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://abc.com/api/javascripts/blogger.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://abc.com/api/statuses/user_timeline/twitter_username.json?callback=twitterCallback2&amp;amp;count=2&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
    &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;以下代码是显示twitter条目的代码，你可以加到博客侧边栏或者加到博客顶部，像我&lt;a href=&quot;http://chenzhiwei.net&quot;&gt;博客&lt;/a&gt;(&lt;a href=&quot;http://chenzhiwei.net&quot;&gt;chenzhiwei.net&lt;/a&gt;)这样，由于博客主机速度原因，加载javascript太慢，所以将顶部tweets去掉了，效果见&lt;a href=&quot;http://chenzhiwei.net/twitter/tweets.php&quot; target=&quot;_blank&quot;&gt;http://chenzhiwei.net/twitter/tweets.php&lt;/a&gt; ，因api原因，有时可能会显示不出来，刷新一下就OK了。如果懂CSS的话，你自己还可以优化一下tweets的显示，使用其更加美观。&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
5
6
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;css&quot; style=&quot;font-family:monospace;&quot;&gt;&amp;lt;div id&lt;span style=&quot;color: #00AA00;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;gt;&lt;/span&gt;
	&amp;lt;ul id&lt;span style=&quot;color: #00AA00;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;twitter_update_list&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;gt;&lt;/span&gt;
		&amp;lt;li&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;gt;&lt;/span&gt;&amp;amp;nbsp&lt;span style=&quot;color: #00AA00;&quot;&gt;;&lt;/span&gt;loading...&amp;lt;/li&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;gt;&lt;/span&gt;
		&amp;lt;?php twitter_show&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #00AA00;&quot;&gt;;&lt;/span&gt; ?&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;gt;&lt;/span&gt;
	&amp;lt;/ul&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;lt;/div&lt;span style=&quot;color: #00AA00;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;到此，博客上添加twitter挂件功能就实现了，非常简单。&lt;br /&gt;
下面给出一个测试例子：index.php文件，将该文件中的http://abc.com/api/改为你自己的twitter api地址，然后运行该文件后就会显示两条tweets。效果见&lt;a href=&quot;http://chenzhiwei.net/twitter/tweets.php&quot; target=&quot;_blank&quot;&gt;http://chenzhiwei.net/twitter/tweets.php&lt;/a&gt; 。&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre class=&quot;php&quot; style=&quot;font-family:monospace;&quot;&gt;&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; &amp;gt;
&amp;lt;head profile=&amp;quot;http://gmpg.org/xfn/11&amp;quot;&amp;gt;
&amp;lt;title&amp;gt;show tweets&amp;lt;/title&amp;gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt; twitter_show&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;?&amp;gt;&lt;/span&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://abc.com/api/javascripts/blogger.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://abc.com/api/statuses/user_timeline/chenzhiwei.json?callback=twitterCallback2&amp;amp;count=2&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
    &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;?&amp;gt;&lt;/span&gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;ul id=&amp;quot;twitter_update_list&amp;quot;&amp;gt;
        &amp;lt;li&amp;gt;&amp;amp;nbsp;&amp;lt;/li&amp;gt;
            &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt; twitter_show&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;?&amp;gt;&lt;/span&gt;
    &amp;lt;/ul&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p style=&quot;font-weight: bold;&quot;&gt;&amp;copy; 2010, &lt;a href=&quot;http://chenzhiwei.net&quot;&gt;chenzhiwei.net&lt;/a&gt;. 版权所有.  &lt;br /&gt;本文永久链接：&lt;a title=&quot;博客上添加twitter挂件的方法-超级简单&quot; href=&quot;http://chenzhiwei.net/2010/06/add-twitter-gadget-on-your-blog/&quot;&gt;http://chenzhiwei.net/2010/06/add-twitter-gadget-on-your-blog/&lt;/a&gt;&lt;/p&gt;&lt;hr /&gt;&lt;div  class=&quot;related_post_title&quot;&gt;相关日志&lt;/div&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2009/08/the-new-discovery/&quot; title=&quot;我这几天的新发现&quot;&gt;我这几天的新发现&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/399588398/chenzhiwei/feedsky/s.gif?r=http://chenzhiwei.net/2010/06/add-twitter-gadget-on-your-blog/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/chenzhiwei/399588398/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/chenzhiwei/399588398/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://chenzhiwei.net/2010/06/add-twitter-gadget-on-your-blog/feed/</wfw:commentRss><slash:comments>17</slash:comments><description>最近一不小心发现原来在博客上添加twitter挂件很简单。只需要一个twitter api  地址，几行代码就可以了，现在贴出来与各位同学分享。以下是相关说明。
假设你的twitter api地址是：http://abc.com/api/
只需要将以下代码第六行中的twitter_username改为你自己的twitter用户名，其中的count=2是说明只显示最新的两条推。你可以根据自己的需求而适当更改。将这几行代码加到&amp;#60;head&amp;#62;&amp;#60;/head&amp;#62;之间，当然，你也可以加到主题的function.php或其他.php文件里面。看完以下代码后你会发现，只需稍做修改就可以运用到静态网页中了。

1
2
3
4
5
6
7
8
9
&amp;#60;?php
function twitter_show&amp;#40;&amp;#41;
&amp;#123;
    ?&amp;#62;
    &amp;#60;script type=&amp;#34;text/javascript&amp;#34; src=&amp;#34;http://abc.com/api/javascripts/blogger.js&amp;#34;&amp;#62;&amp;#60;/script&amp;#62;
    &amp;#60;script type=&amp;#34;text/javascript&amp;#34; src=&amp;#34;http://abc.com/api/statuses/user_timeline/twitter_username.json?callback=twitterCallback2&amp;#38;count=2&amp;#34;&amp;#62;&amp;#60;/script&amp;#62;
    &amp;#60;?php
&amp;#125;
?&amp;#62;

以下代码是显示twitter条目的代码，你可以加到博客侧边栏或者加到博客顶部，像我博客(chenzhiwei.net)这样，由于博客主机速度原因，加载javascript太慢，所以将顶部tweets去掉了，效果见http://chenzhiwei.net/twitter/tweets.php ，因api原因，有时可能会显示不出来，刷新一下就OK了。如果懂CSS的话，你自己还可以优化一下tweets的显示，使用其更加美观。

1
2
3
4
5
6
&amp;#60;div id=&amp;#34;&amp;#34;&amp;#62;
	&amp;#60;ul id=&amp;#34;twitter_update_list&amp;#34;&amp;#62;
		&amp;#60;li&amp;#62;&amp;#38;nbsp;loading...&amp;#60;/li&amp;#62;
		&amp;#60;?php twitter_show&amp;#40;&amp;#41;; ?&amp;#62;
	&amp;#60;/ul&amp;#62;
&amp;#60;/div&amp;#62;

到此，博客上添加twitter挂件功能就实现了，非常简单。
下面给出一个测试例子：index.php文件，将该文件中的http://abc.com/api/改为你自己的twitter api地址，然后运行该文件后就会显示两条tweets。效果见http://chenzhiwei.net/twitter/tweets.php 。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
&amp;#60;html xmlns=&amp;#34;http://www.w3.org/1999/xhtml&amp;#34; &amp;#62;
&amp;#60;head profile=&amp;#34;http://gmpg.org/xfn/11&amp;#34;&amp;#62;
&amp;#60;title&amp;#62;show tweets&amp;#60;/title&amp;#62;
&amp;#60;?php
function twitter_show&amp;#40;&amp;#41;
&amp;#123;
    ?&amp;#62;
    &amp;#60;script type=&amp;#34;text/javascript&amp;#34; src=&amp;#34;http://abc.com/api/javascripts/blogger.js&amp;#34;&amp;#62;&amp;#60;/script&amp;#62;
    &amp;#60;script type=&amp;#34;text/javascript&amp;#34; src=&amp;#34;http://abc.com/api/statuses/user_timeline/chenzhiwei.json?callback=twitterCallback2&amp;#38;count=2&amp;#34;&amp;#62;&amp;#60;/script&amp;#62;
   [...]&lt;img src=&quot;http://www1.feedsky.com/t1/399588398/chenzhiwei/feedsky/s.gif?r=http://chenzhiwei.net/2010/06/add-twitter-gadget-on-your-blog/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/chenzhiwei/399588398/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/chenzhiwei/399588398/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>互联网络</category><category>挂件</category><category>twitter</category><category>gadget</category><category>建站相关</category><pubDate>Thu, 10 Jun 2010 20:23:03 +0800</pubDate><author>zhiwei</author><comments>http://chenzhiwei.net/2010/06/add-twitter-gadget-on-your-blog/#comments</comments><guid isPermaLink="false">http://chenzhiwei.net/?p=30219</guid><dc:creator>zhiwei</dc:creator><fs:srclink>http://chenzhiwei.net/2010/06/add-twitter-gadget-on-your-blog/</fs:srclink><fs:srcfeed>http://chenzhiwei.net/feed</fs:srcfeed><fs:itemid>feedsky/chenzhiwei/~8123134/399588398/5440650</fs:itemid></item><item><title>C语言中的static关键字</title><link>http://chenzhiwei.net/2010/06/the-keyword-static-in-c-language/</link><content:encoded>&lt;p&gt;&lt;strong&gt;1.static 全局变量与普通全局变量的区别：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;在定义变量时，全局变量之前再冠以 static  就构成了静态的全局变量。全局变量本身就是静态存储方式，静态全局变量当然也是静态存储方式。两者在存储方式上并无不同。两者的区别在于非静态全局变量的作用域是整个源程序，当一个源程序由多个源文件组成时，非静态的全局变量在各源文件中都是有效的。而静态全局变量则限制了其作用域，即只在定义该变量的源文件内有效，在同一源程序的其他源文件中不能使用。由于静态全局变量的作用域局限域于一个源文件内，只能为该源文件内的函数使用，因此可以避免其他源文件 使用该变量。把普通全局变量改变为静态全局变量是改变了他的作用域，限制了他的使用范围。&lt;span id=&quot;more-30212&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2.static 局部变量和普通局部变量的区别：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;普通局部变量所在的函数每次被调用都会被重新定义并分配存储空间，而 static 局部变量不会，他的值始终保存着。static  局部变量只被初始化一次，下一次使用时依旧是上一次的值。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3.static 函数与普通函数的区别：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;static 函数(即静态函数，在函数定义时加上了static  关键字)与普通函数作用域不同，他仅存在于文本文件中。只在当前源文件中使用的函数应该说明为内部函数(即加上static关键字)。内部函数应该在当前 源文件中声明和定义。对于可在当前源文件以外的函数，应该在一个头文件中说明，要使用这个函数的源文件要包含这个头文件。另：程序的普通全局变量存在于堆 栈中，全局变量、static 局部变量存在于静态存储区中。&lt;/p&gt;
&lt;p&gt;PS: 以前学习C语言时做的笔记，今天再一次看到就写在博客里面了。&lt;/p&gt;
&lt;p style=&quot;font-weight: bold;&quot;&gt;&amp;copy; 2010, &lt;a href=&quot;http://chenzhiwei.net&quot;&gt;chenzhiwei.net&lt;/a&gt;. 版权所有.  &lt;br /&gt;本文永久链接：&lt;a title=&quot;C语言中的static关键字&quot; href=&quot;http://chenzhiwei.net/2010/06/the-keyword-static-in-c-language/&quot;&gt;http://chenzhiwei.net/2010/06/the-keyword-static-in-c-language/&lt;/a&gt;&lt;/p&gt;&lt;hr /&gt;&lt;div  class=&quot;related_post_title&quot;&gt;相关日志&lt;/div&gt;&lt;ul class=&quot;related_post&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2008/12/evaluate-expression/&quot; title=&quot;数据结构：利用栈的操作实现表达式求值&quot;&gt;数据结构：利用栈的操作实现表达式求值&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2008/12/program-jixianyouhua/&quot; title=&quot;极限优化的编程题目&quot;&gt;极限优化的编程题目&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2008/10/cc-programming-challenge-try-this/&quot; title=&quot;C/C++ Programming Challenge &amp;#8211; try this!&quot;&gt;C/C++ Programming Challenge &amp;#8211; try this!&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://chenzhiwei.net/2008/10/editplus-appication/&quot; title=&quot;EditPlus的应用&quot;&gt;EditPlus的应用&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/399588399/chenzhiwei/feedsky/s.gif?r=http://chenzhiwei.net/2010/06/the-keyword-static-in-c-language/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/chenzhiwei/399588399/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/chenzhiwei/399588399/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://chenzhiwei.net/2010/06/the-keyword-static-in-c-language/feed/</wfw:commentRss><slash:comments>15</slash:comments><description>1.static 全局变量与普通全局变量的区别：
在定义变量时，全局变量之前再冠以 static  就构成了静态的全局变量。全局变量本身就是静态存储方式，静态全局变量当然也是静态存储方式。两者在存储方式上并无不同。两者的区别在于非静态全局变量的作用域是整个源程序，当一个源程序由多个源文件组成时，非静态的全局变量在各源文件中都是有效的。而静态全局变量则限制了其作用域，即只在定义该变量的源文件内有效，在同一源程序的其他源文件中不能使用。由于静态全局变量的作用域局限域于一个源文件内，只能为该源文件内的函数使用，因此可以避免其他源文件 使用该变量。把普通全局变量改变为静态全局变量是改变了他的作用域，限制了他的使用范围。
2.static 局部变量和普通局部变量的区别：
普通局部变量所在的函数每次被调用都会被重新定义并分配存储空间，而 static 局部变量不会，他的值始终保存着。static  局部变量只被初始化一次，下一次使用时依旧是上一次的值。
3.static 函数与普通函数的区别：
static 函数(即静态函数，在函数定义时加上了static  关键字)与普通函数作用域不同，他仅存在于文本文件中。只在当前源文件中使用的函数应该说明为内部函数(即加上static关键字)。内部函数应该在当前 源文件中声明和定义。对于可在当前源文件以外的函数，应该在一个头文件中说明，要使用这个函数的源文件要包含这个头文件。另：程序的普通全局变量存在于堆 栈中，全局变量、static 局部变量存在于静态存储区中。
PS: 以前学习C语言时做的笔记，今天再一次看到就写在博客里面了。
&amp;#169; 2010, chenzhiwei.net. 版权所有.  本文永久链接：http://chenzhiwei.net/2010/06/the-keyword-static-in-c-language/相关日志数据结构：利用栈的操作实现表达式求值极限优化的编程题目C/C++ Programming Challenge &amp;#8211; try this!EditPlus的应用&lt;img src=&quot;http://www1.feedsky.com/t1/399588399/chenzhiwei/feedsky/s.gif?r=http://chenzhiwei.net/2010/06/the-keyword-static-in-c-language/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/chenzhiwei/399588399/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/chenzhiwei/399588399/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>编程相关</category><category>static</category><category>C语言</category><pubDate>Fri, 04 Jun 2010 15:21:16 +0800</pubDate><author>zhiwei</author><comments>http://chenzhiwei.net/2010/06/the-keyword-static-in-c-language/#comments</comments><guid isPermaLink="false">http://chenzhiwei.net/?p=30212</guid><dc:creator>zhiwei</dc:creator><fs:srclink>http://chenzhiwei.net/2010/06/the-keyword-static-in-c-language/</fs:srclink><fs:srcfeed>http://chenzhiwei.net/feed</fs:srcfeed><fs:itemid>feedsky/chenzhiwei/~8123134/399588399/5440650</fs:itemid></item></channel></rss>