X皮书之shell实战开发

最近正在忙于开发豆瓣数据同步,主要原因是豆瓣接口不给力,超过一定的访问量就抓不到它的数据。所以决定把豆瓣的数据导入到本地服务器,然后使用我们自己的数据。

导入数据的脚本我已经开发完了。现在就剩下命令行调用了。今天我就专门研究了下shell的应用,我把我的思考过程写一下。

准备

这是要使用的php测试脚本(并不是我的线上代码,只是一个样例)。

 
 
 
 
  1. if ($_SERVER['argc'] < 2) {  
  2.     echo "调用不正确!\n";  
  3.     echo "调用方式:";  
  4.     echo "php {$_SERVER['argv'][0]} { rsync_show  | rsync_show_by_id 1231123 | rsync_douban }\n";  
  5.     exit(-1);  
  6. }  
  7. function rsync_show() {  
  8.     echo "调用节目数据\n";  
  9. }  
  10. function rsync_show_by_id($id) {  
  11.     if(emptyempty($id)){  
  12.         echo "缺少参数...\n";  
  13.         exit(-1);  
  14.     }  
  15.     echo "根据指定ID开始导入节目数据\n";  
  16. }  
  17. function rsync_douban() {  
  18.     echo "调用豆瓣数据层\n";  
  19. }  
  20. foreach ($_SERVER['argv'] as $k => $v) {  
  21.     if($k == 0)  continue;  
  22.  
  23.     if($v == 'rsync_show_by_id'){  
  24.         call_user_func($v, $_SERVER['argv'][2]);  
  25.         break;  
  26.     }else{  
  27.         call_user_func($v);  
  28.     }  
  29. }  
  30. exit(0); 

查看几个调用结果

[[101291]]错误1

[[101291]]错误2

[[101291]]正确的调用方式

[[101291]]通过crontab -e设置个定时执行脚本

#p#

shell 脚本

1、开始使用shell脚本编程

[[101291]]运行脚本

2、添加一个停止脚本

3、函数整理

#p#

shell 查漏补缺

两大问题:1、是不是再写一个方法?2、怎么传参啊?

第一个问题,直接用start方法就行了,没必要再写一个方法!——多写一个方法是要付出代价的。

第二个问题怎么解决,我忽然想到在我们安装开源软件的时候喜欢这么用,如下图  

所以我决定也使用类似的方法作为参数传递之用。

具体看我下面的方法调用啊!

[[101291]]运行脚本

重点:

[[101291]]放入crontab中

我在php的源代码中的configure中发现了一个不错的输出字符的方法,与大家分享

[[101291]]运行效果

总结

这就是我今天收获的一些东西,shell我也不是很精通。如果大家有更好的建议,希望告知一、二。

分享题目:X皮书之shell实战开发
分享地址:http://www.mswzjz.cn/qtweb/news48/449498.html

攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能