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$ 

原文地址:https://www.cnblogs.com/ghostwu/p/8905856.html

时间: 2024-08-04 22:26:36

php解释命令行的参数的相关文章

记录一个 spring cloud 配置中心的坑,命令行端口参数无效,被覆盖

spring cloud 配置中心 结合GIT , 可以运行时更新配置文件.发送指令让应用重新读取配置文件. 最近在测试服务器实现了一套,结果CPU 实用率暴增,使用docker compose启动 restart always 多节点的服务一直重启关闭重启关闭. 日志文件记录了一个异常: 国内国外搜了一遍都没有解决 org.springframework.beans.factory.BeanCreationNotAllowedException: Error creating bean wit

go语言 从命令行获取参数解析

go语言内置的flag包实现了命令行参数的解析,flag包使得开发命令行工具更为简单. os.Args 如果你只是简单的想要获取命令行参数,可以像下面的示例代码一样使用os.Args来获取命令行参数 package main import "fmt" import "os" func main(){ if len(os.Args)>0 { for index , value := range os.Args { fmt.Println(index, value

mysql命令行各个参数解释

http://blog.51yip.com/mysql/1056.html Usage: mysql [OPTIONS] [database]   //命令方式 -?, --help          //显示帮助信息并退出 -I, --help          //显示帮助信息并退出 --auto-rehash       //自动补全功能,就像linux里面,按Tab键出提示差不多,下面有例子 -A, --no-auto-rehash  //默认状态是没有自动补全功能的.-A就是不要自动补

Java 命令行运行参数大全

Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOME"bin"java –option 来启动,-option为虚拟机参数,JAVA_HOME为JDK安装路径,通过这些参数可对虚拟机的运行状态进行调整,掌握参数的含义可对虚拟机的运行模式有更深入理解. 一.         查看参数列表:虚拟机参数分为基本和扩展两类,在命令行中输入JAVA_HOME"bin"java 就可得到基本参数列表,在命令行输入J

linux命令行传递参数定期执行PHP文件

最近在做一个项目,需要在linux下传递参数定期执行PHP文件,网上查询资料,确实有相关资料,现整理如下: 1.linux执行PHP文件 #{PHP安装bin路径} {PHP文件路径} {需要参数1 参数2 参数3}#各参数之间,用空格分开#查看php安装bin路径 可执行which php命令 /usr/bin/php /local/www/index.php 111 222 333 2.接收参数 一般情况下,php接收命令行传递过来的参数,$argv保存所有参数组成的数组,$argc保存参数

Java命令行执行参数中包含空格被截断的问题解决

使用java -jar命令在命令行执行jar包,传入参数时,参数包含空格,例如“hello world”,这个参数会被解析成两个参数“hello”和“world”.这样的结果是执行时不能正常的获取参数.这时只要在参数两边加上引号即可. 一开始使用的命令如下:java -jar Test.jar %{test}   —— %{test}为其他程序中传入的参数 修改之后的命令如下:java -jar Test.jar ‘%{test}‘  这样就可以作为一个参数获取值了

program_options禁止命令行短参数

典型的 boost program_options的用法如下: #include <boost/program_options.hpp> using namespace boost::program_options; using namespace std; int main(int argc, char* argv[]) // 需要命令行参数 { int intValue; options_description opts("Mysql performance options&qu

apollo命令行传入参数

Java apollo客户端运行配置 需要在META-INF中创建app.properties文件,以配置app.id 还需要在/opt/settings/server.properties或C:/opt/settings/server.properties 为实现通过命令行参数传入控制这些参数,可以在main方法中加入以下代码: boolean isLocal = false; if (args != null && args.length > 0) { for (String a

命令行之参数解析 optparse模块的运用

1 import optparse 2 3 op = optparse.OptionParser() #固定对象获取 4 op.add_option('-s','--server',dest = 'server') 5 op.add_option('-p','--p',dest = 'port') #dest起到封装属性的作用 6 options,argv = op.parse_args() #参数解析 7 print(options) 8 print(options.server) #opti