php解释命令行的参数

Posted ghostwu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php解释命令行的参数相关的知识,希望对你有一定的参考价值。

php cli模式下,可以用$argc, $argv来读取所有的参数以及个数,如:

[email protected]:~/php/php1/1$ cat go1
#!/usr/bin/php
<?php

    echo ‘参数个数:‘ . $argc . PHP_EOL;
    echo ‘打印参数:‘ . PHP_EOL;
    print_r( $argv ) . PHP_EOL;

给文件加上可执行权限:

[email protected]:~/php/php1/1$ ls -l
total 8
-rwxrwxr-x 1 ghostwu ghostwu 337 4月  22 09:15 go
-rw-rw-r-- 1 ghostwu ghostwu 126 4月  22 09:20 go1
[email protected]:~/php/php1/1$ chmod a+x go1
[email protected]:~/php/php1/1$ ls -l
total 8
-rwxrwxr-x 1 ghostwu ghostwu 337 4月  22 09:15 go
-rwxrwxr-x 1 ghostwu ghostwu 126 4月  22 09:20 go1
[email protected]:~/php/php1/1$ ./go1
参数个数:1
打印参数:
Array
(
    [0] => ./go1
)
[email protected]:~/php/php1/1$ ./go1 a b c
参数个数:4
打印参数:
Array
(
    [0] => ./go1
    [1] => a
    [2] => b
    [3] => c
)

如果想把go1这个文件,在操作系统任意目录下,都能执行,我们需要添加环境变量,我在家目录下面建立一个目录mybin,用来放自己开发的命令

[email protected]:~/mybin$ tail -2 ~/.bashrc
fi
export PATH=~/mybin:$PATH
[email protected]:~/mybin$ pwd
/home/ghostwu/mybin
[email protected]:~/mybin$ 
[email protected]:~/mybin$ echo $PATH
/home/ghostwu/mybin:/home/ghostwu/bin:/home/ghostwu/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
[email protected]:~/mybin$ 

再次打印$PATH,已经加入进来了,这个时候把开发好的命令拷贝到 ~/mybin目录下,  以后在系统的任意目录都能执行go1

[email protected]:~/mybin$ cp ~/php/php1/1/go1 .
[email protected]:~/mybin$ ls -l
total 8
-rwxrwxr-x 1 ghostwu ghostwu 126 4月  22 09:44 go1
[email protected]:~/mybin$ go1
参数个数:1
打印参数:
Array
(
    [0] => /home/ghostwu/mybin/go1
)
[email protected]:~/mybin$ cd /
[email protected]:/$ go1
参数个数:1
打印参数:
Array
(
    [0] => /home/ghostwu/mybin/go1
)
[email protected]:/$ cd /tmp
[email protected]:/tmp$ go1
参数个数:1
打印参数:
Array
(
    [0] => /home/ghostwu/mybin/go1
)

在Linux命令行下,很多的命令,或者说软件都有一个-v参数来显示版本号,这个功能怎么做?

$res = ‘‘;
if( $argc >= 2 ) $argv[1] == -v && $res = go version is 1.0;
    echo $res . PHP_EOL;

是不是很简单,3行代码就搞定了

[email protected]:~/mybin$ go -v
go version is 1.0
[email protected]:~/mybin$ ls -l
total 8
-rwxrwxr-x 1 ghostwu ghostwu 336 4月  22 09:49 go
-rwxrwxr-x 1 ghostwu ghostwu 126 4月  22 09:44 go1
[email protected]:~/mybin$ 

 

以上是关于php解释命令行的参数的主要内容,如果未能解决你的问题,请参考以下文章

有没有大神帮忙解释下Sed 命令的r参数的用法,最好带例子

php cli命令 自定义参数传递

使用 pdb 进行调试

如何获取PHP命令行参数

python调试:pdb基本用法(转)

php eval怎样执行系统命令?