有两种方法可以运行

第一种方法是使用

第二种方法是首先运行chmod+x(UNIX/Linux环境),将该

下面我们来看看怎样编写

1.编写第一个CLI脚本 
首先创建一个名为myfile.

#!/usr/local/bin/myfile.

再重申一次:如果在Windows平台,CLI脚本的第一行一定要写正确

#!C:\

这样,可以看到在命令行下信息已经打印出来,证明该CLI脚本已经成功运行。

2.从命令行上读取参数

如果想从命令行获取参数,CLI可以从$_SERVER['argc']和$_SERVER['argv'']取得参数的个数和值。我们再建立一个文件,名字为testargs.

#!C:\在命令行输入如下代码: C:\Users\John>testargs.

因为我们输入了一串单词,为“AlwaysTo Be Best”,脚本参数以空格分隔。因此,

$_SERVER["argc"]数组返回一个整型的数,代表从命令行上回车后一共输入了几个参数。

从上例的结果已经看出,要访问已经传入的参数值,需要从索引1开始。因为脚本本身的文件已经占用了索引0,即$_SERVER["argv"][0]。

3.处理I/O通道

输入输出(I/O)通道这个思想来源于UNIX系统,UNIX系统提供3个文件句柄,用以从一个应用程序及用户终端发送和接收数据。

我们可以把一个脚本的输出重定向到一个文件:

outputfile

如果是在UNIX系统下,也可以使用通道定向到另一个命令或应用程序中。例如:

(1)STDIN

STDIN全称为standardin或standard input,标准输入可以从终端取得任何数据。

格式:stdin(’

下面的例子是显示用户输入:

#!/usr/local/bin/

这段代码的工作原理与cat命令很相似,回转提供给它的所有输入。但是,这时它还不能接收参数。

STDIN是

#!/usr/local/bin/该脚本执行后将显示:你好!你叫什么名字(请输入):比如,输入Raymond之后,将显示:欢迎你Raymond

(2)STDOUT

STDOUT全称为standardout或standard output,标准输出可以直接输出到屏幕(也可以输出到其他程序,使用STDIN取得),如果在

格式:stdout(’

我们还可以使用

#!/usr/local/bin/输出结果如下:Hello World例如,echo和print命令打印到标准输出。#!/usr/local/bin/这将得到:Output #1.Output #2.Output #3.

说明:

#!/usr/local/bin/

以上代码将把

(3)STDERR

STDERR全称为standarderror,在默认情况下会直接发送至用户终端,当使用STDIN文件句柄从其他应用程序没有读取到数据时会生成一个“stdin.stderr”。

格式:stderr(’

下面的脚本表示如何把一行文本输出到错误流中。

#!/usr/local/bin/

4.后台运行CLI

如果正在运行一个进程,而且在退出账户时该进程还不会结束,即在系统后台或背景下运行,那么就可以使用nohup命令。该命令可以在退出账户之后继续运行相应的进程。

nohup在英文中就是不挂起的意思(nohang up)。该命令的一般形式为:

nohup –f scriptname.

使用nohup命令提交作业,在默认情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件。

nohup scriptname.log.txt &

这样,

tail-n50 -f log.txt

现在再来实现两个例子,第一个是每隔10分钟自动生成一个静态HTML文件,并一直执行下去。脚本代码如下:

#!/usr/local/bin/

保存并且退出vi编辑器,然后赋予genHTML.

#>chmod755 genHTML.

按回车键后将出现shell提示符。上面的提示就是说,所有命令执行的输出信息都会放到nohup.out文件中。

执行上面命令后,每隔10分钟就会在指定的目录生成指定的HTML文件,如article_111990120.html等文件。

如何终止CLI程序的后台运行呢?

可以使用kill命令来终止这个进程,终止进程之前要知道进程的PID号,即进程ID,我们使用ps命令:

www#ps PID TT STAT TIME COMMAND 561 v0 Is+ 0:00.00 /usr/libexec/getty Pc ttyv0 562v1 Is+ 0:00.00 /usr/libexec/getty Pc ttyv1 563 v2 Is+ 0:00.00 /usr/libexec/gettyPc ttyv2 564 v3 Is+ 0:00.00 /usr/libexec/getty Pc ttyv3 565 v4 Is+ 0:00.00/usr/libexec/getty Pc ttyv4 566 v5 Is+ 0:00.00 /usr/libexec/getty Pc ttyv5 567v6 Is+ 0:00.00 /usr/libexec/getty Pc ttyv6 568 v7 Is+ 0:00.00 /usr/libexec/gettyPc ttyv7 16180 p0 I 0:00.01 su 16181 p0 S 0:00.06 _su (csh) 16695 p0 R+ 0:00.00ps 16623 p0 S 0:00.06 /usr/local/bin/

刚才的

注意:上面例子必须运行在UNIX或者Linux系统中,如FreeBSD、RedhatLinux等,在Windows环境不支持nohup命令。

  http://www.toutiao.com/i6339288396854198786/

  http://www.toutiao.com/i6342250485050769922/

  http://www.toutiao.com/i6341854300825715202/

  http://www.toutiao.com/i6341522663323730434/

  http://www.toutiao.com/i6340964656659579393/

  http://www.toutiao.com/i6340769983185814017/

  http://www.toutiao.com/i6340381556544111105/

  http://www.toutiao.com/i6340008962368209410/

  http://www.toutiao.com/i6339636556831130113/

  http://www.toutiao.com/i6338968648522138114/

  http://www.toutiao.com/i6338521135566553602/

  http://www.toutiao.com/i6338178359737975298/

12-25 02:02