基础知识
1.1 什么是Shell编程?
在 Unix
中,shell 可不是简单的命令解释器(典型的有 Windows 中的 DOS ),而是一个全功能的编程环境。Shell
是操作系统的一部分,用来与用户打交道,并且可以用来协调各个命令【1】。用Shell编程可以灵活地解决大量重复任务,十分方便。但是,Shell的语
法十分怪异(个人意见),不容易记,如果现在熟悉的语言可以用来写shell那就好了——比如php——就可以快速开发Shell程序了,本文以
Linux为例说明PHP-CLI的用法,其它平台的版本类似。
1.2 什么是PHP-CLI?
刚才说到,我们可以用php来开发Shell程序。有的同学可能会问啦:“php不是用来做网页的么?-_-”。是的,php可以用来做动态网页,并且当初php就是为做动态网页而开发的语言,但是理论上php可以用来做任何的程序,甚至是桌面程序,而PHP-CLI是php在命令行运行的支持环境,也就是我们说的可以用来写Shell的环境支持。
PHP-CLI是php Command Line Interface的简称,如同它名字的意思,就是php在命令行运行的接口,区别于在Web服务器上运行的php环境(php-cgi, isapi等)【2】。
也就是说,php不单可以写前台网页,它还可以用来写后台的程序。
执行PHP-CLI脚本
2.1 PHP-CLI的语法
和普通PHP脚本完全一样,只不过一些默认的参数与PHP-CGI不同,比如运行时间:PHP-CLI默认运行时间是无穷,而Web PHP默认是30秒。
2.2 运行PHP脚本方法-1
# php -r 'print_r(get_defined_constants());'
2.3 运行PHP脚本方法-2
# php my_script.php
# php -f my_script.php
2.4 运行PHP脚本方法-3
还有一种方式,就是在文件中指令解释器,就可以直接在终端以”./test.php执行脚本了”,test.php就像下面这样:
#!/usr/bin/php -q
echo "Hello world!";
2.5 用Cron执行PHP-CLI脚本
cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行周期性作业,比如数据备份等等,添加方法:
打开/etc/crontab,添加如下代码:
0 13 * * * /usr/bin/php -f /path/to/phpcli.php
参考文献
Linux Shell简介 : http://www.linuxsir.org/main/?q=node/135
PHP Command Line Interface : Mystic Unleashed :http://www.PHP-CLI.com/
ch 4.2, php manual : http://www.php.net
注意事项:
PHP脚本并不一定要以php为扩展名,可以是任意扩展名,甚至不要扩展名,只是为了清楚我才用的php扩展名。