php解释命令行的参数
php cli模式下,可以用$argc, $argv来读取所有的参数以及个数,如:
ghostwu@ghostwu:~/php/php1/1$ cat go1
#!/usr/bin/php
<?php echo '参数个数:' . $argc . PHP_EOL;
echo '打印参数:' . PHP_EOL;
print_r( $argv ) . PHP_EOL;
给文件加上可执行权限:
ghostwu@ghostwu:~/php/php1/$ ls -l
total
-rwxrwxr-x ghostwu ghostwu 4月 : go
-rw-rw-r-- ghostwu ghostwu 4月 : go1
ghostwu@ghostwu:~/php/php1/$ chmod a+x go1
ghostwu@ghostwu:~/php/php1/$ ls -l
total
-rwxrwxr-x ghostwu ghostwu 4月 : go
-rwxrwxr-x ghostwu ghostwu 4月 : go1
ghostwu@ghostwu:~/php/php1/$ ./go1
参数个数:
打印参数:
Array
(
[] => ./go1
)
ghostwu@ghostwu:~/php/php1/$ ./go1 a b c
参数个数:
打印参数:
Array
(
[] => ./go1
[] => a
[] => b
[] => c
)
如果想把go1这个文件,在操作系统任意目录下,都能执行,我们需要添加环境变量,我在家目录下面建立一个目录mybin,用来放自己开发的命令
ghostwu@ghostwu:~/mybin$ tail - ~/.bashrc
fi
export PATH=~/mybin:$PATH
ghostwu@ghostwu:~/mybin$ pwd
/home/ghostwu/mybin
ghostwu@ghostwu:~/mybin$
ghostwu@ghostwu:~/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
ghostwu@ghostwu:~/mybin$
再次打印$PATH,已经加入进来了,这个时候把开发好的命令拷贝到 ~/mybin目录下, 以后在系统的任意目录都能执行go1
ghostwu@ghostwu:~/mybin$ cp ~/php/php1//go1 .
ghostwu@ghostwu:~/mybin$ ls -l
total
-rwxrwxr-x ghostwu ghostwu 4月 : go1
ghostwu@ghostwu:~/mybin$ go1
参数个数:
打印参数:
Array
(
[] => /home/ghostwu/mybin/go1
)
ghostwu@ghostwu:~/mybin$ cd /
ghostwu@ghostwu:/$ go1
参数个数:
打印参数:
Array
(
[] => /home/ghostwu/mybin/go1
)
ghostwu@ghostwu:/$ cd /tmp
ghostwu@ghostwu:/tmp$ go1
参数个数:
打印参数:
Array
(
[] => /home/ghostwu/mybin/go1
)
在Linux命令行下,很多的命令,或者说软件都有一个-v参数来显示版本号,这个功能怎么做?
$res = '';
if( $argc >= ) $argv[] == '-v' && $res = 'go version is 1.0';
echo $res . PHP_EOL;
是不是很简单,3行代码就搞定了
ghostwu@ghostwu:~/mybin$ go -v
go version is 1.0
ghostwu@ghostwu:~/mybin$ ls -l
total
-rwxrwxr-x ghostwu ghostwu 4月 : go
-rwxrwxr-x ghostwu ghostwu 4月 : go1
ghostwu@ghostwu:~/mybin$
php解释命令行的参数的更多相关文章
- mysql命令行各个参数解释
mysql命令行各个参数解释 http://blog.51yip.com/mysql/1056.html Usage: mysql [OPTIONS] [database] //命令方式 -?, ...
- 在VS中向命令行添加参数的方法
在VS中向命令行添加参数的方法 在VS中向命令行添加参数,即向main()函数传递参数的方法: 右键单击要 添加参数的工程-->属性-->配置属性-->调试,在右侧“命令参数”栏输入 ...
- Shell Scipt 命令行带参数,输出log
命令行带参数,以及字符串参数放到ssh命令里可以这么放: #!/bin/bash 这行保证运行bash可以这样: ./data.sh if [ $# != 4 ]; then echo ...
- 记录一个 spring cloud 配置中心的坑,命令行端口参数无效,被覆盖,编码集问题无法读取文件等.
spring cloud 配置中心 结合GIT , 可以运行时更新配置文件.发送指令让应用重新读取配置文件. 最近在测试服务器实现了一套,结果CPU 实用率暴增,使用docker compose启动 ...
- 命令行传递参数并排序 AS实现加法
题目:从命令行输入参数并进行排序 1.实验准备 Integer提供了能在 int 类型和 String 类型之间互相转换的方法,还提供了处理 int 类型时非常有用的其他一些常量和方法. static ...
- 【VS工程设置】 编译动态库,命令行添加参数,不使用预编译头,指定该项目链接 哪种 运行库
编译动态库 注意: 动态库: [目标文件扩展] => .dll + [配置类型] => 动态库(.dll) 静态库: [目标文件扩展] => .lib + [ 配置类型]=> ...
- FFmpeg命令行map参数选择音视频流
FFmpeg命令行map参数选择音视频流 介绍 -map参数告诉ffmpeg要从输入源中选择/拷贝哪个stream流到输出,可以从输入源中选择多个音视频流作为输出. 不加-map参数,ffmpeg默认 ...
- python命令行获取参数
python命令行获取参数 import sys # python获取参数 input_file = sys.argv[1] output_file = sys.argv[2] print(input ...
- spring boot 项目打包后无法通过命令行传入参数
java -jar .\tk-provider.jar --spring.profiles.active=test 本想用测试环境的配置文件运行项目可项目启动时一直是使用dev配置文件运行. java ...
随机推荐
- “全栈2019”Java多线程第三十四章:超时自动唤醒被等待的线程
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- window.location API
概述 今天被自己鄙视了,竟然不会用window.location.search进行页面传值.现在好好总结下window.location API,记录一下供以后开发时参考,相信对其它人也有用. 页面传 ...
- postgresql-递增uuid优点
递增uuid的优点: https://blog.2ndquadrant.com/on-the-impact-of-full-page-writes/ 减小wal生成
- 设置多台机器linux服务器ssh相互无密码访问
在每台服务器上都执行ssh-keygen -t rsa生成密钥对: $ ssh-keygen -t rsa Generating public/private rsa key pair. Enter ...
- Stack&&Queue
特殊的容器:容器适配器 stack queue priority_queue:vector+堆算法---->优先级队列 stack: 1.栈的概念:特殊的线性结构,只允许 ...
- 使用IST重新加入节点(5.7.20)
IST不是SST用于节点重新加入吗?我们有解决方案! 鉴于上述痛点,我们将介绍 gcache.freeze_purge_at_seqno Percona XtraDB Cluster 5.7.20.这 ...
- POJ 2578
#include<iostream> #include<stdio.h> #include<vector> using namespace std; int mai ...
- WebForm——JS检测浏览器是否是IE浏览器
function IEVersion() { var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串 && userAgen ...
- Docker 之web api 访问 host sql server
运行 Docker C:\Users\Administrator>docker run -it -p 5000:5000 --name myapidocker1 webapiv1 root@3 ...
- MVC3学习:利用mvc3+ajax实现级联下拉列表框
本例使用的是EF first code操作数据库. 一.准备数据库 级联下拉列表框,比较经典的就是省市数据表,在Model里同时创建三个类:province.cs.city.cs和dropContex ...