在 Linux 命令行中使用和执行 PHP 代码

PHP是三个开源服务器端脚本语言,最先那八个假名代表的是“Personal Home
Page”,而明天则意味着的是“PHP:Hypertext
Preprocessor”,它是个递归首字母缩写。它是二个跨平台脚本语言,相当受C、C++和Java的熏陶。

Shell编制程序根基篇-上,Shell编制程序根底篇-

在上风度翩翩篇小说“在 Linux 命令行中接纳和施行 PHP
代码(后生可畏)”中,小编还要器重切磋了直白在Linux命令行中运转PHP代码以至在Linux终端中施行PHP脚本文件。

图片 1

1.1 前言

图片 2

在 Linux 命令行中运作 PHP 代码

1.1.1 为何学Shell

Shell脚本语言是促成Linux/UNIX系统管理及自动化运转所要求的基本点工具,
Linux/UNIX系统的平底及底子运用软件的为主大都涉及Shell脚本的开始和结果。每三个合格
的Linux系统管理员或运转技术员,都急需能够纯熟地编写Shell脚本语言,并能够阅
读系统及各样软件附带的Shell脚本内容。唯有那样技术晋级运营人士的工效,适
应曰益复杂的行事情况,减弱不供给的双重职业,进而为私家的职场发展奠定较好的根基

正文目的在于令你询问部分极其不错的Linux终端中的PHP人机联作性 shell 的用法特性。

PHP的语法和C、Java以至富含一些PHP性情的Perl形成语言中的语法十三分雷同,它立刻光景正被2.6亿个网址所使用,当前风行的安定版本是PHP版本5.6.10。

1.1.2 什么是shell

Shell是三个命令解释器,它在操作系统的最外层,担任直接与顾客对话,把顾客的输入解释给操作系统,并拍卖百废待举的操作系统的出口结果,输出荧屏重回给客商。

这种对话情势得以是:

相互之间的艺术:从键盘输入命令,通过/bin/bash的剖判,能够立时得到Shell的答应

[[email protected] ~]# ls            
anaconda-ks.cfg  
[[email protected] ~]# echo ls |bash 
anaconda-ks.cfg   

非人机联作的法子: 脚本

图片 3

让大家先在PHP 的并行shell中来对php.ini设置开展一些安顿吧。

PHP是HTML的放权脚本,它有助于开采人士火速写出动态变化的页面。PHP首要用于服务器端(而Javascript则用来客商端)以通过HTTP生成动态网页,然则,当您精晓能够在Linux终端中无需网页浏览器来进行PHP时,你大概会大为惊讶。

1.1.3 什么是Shell脚本

  命令、变量和流程序调控制语句等有机的结合起来

        
shell脚本擅长处理纯文本类型的数据,而linux中,差十分的少全部的安插文件,日志,都是纯文本类型文件

6. 安装PHP命令行提醒符

正文将解说PHP脚本语言的命令行方面。

1.1.4 脚本语言的项目

豆蔻梢头、编写翻译型语言

定义:指用专项使用的编写翻译器,针对特定的操作平台(操作系统)将某种高等语言源代码贰回性翻译成可被硬件平台直接运维的二进制机器码(具备操作数,指令、及相应的格式),那些历程叫做编写翻译(./configure 
make makeinstall
);编译好的可施行性文件(.exe),可在相呼应的阳台上运维(移植性差,但运转功用高)。。

出色的编写翻译型语言有, C语言、C++等。

除此以外,Java语言是一门很新鲜的言语,Java程序须求开展编写翻译步骤,但并不会转移特定平台的二进制机器码,它编写翻译后生成的是风姿罗曼蒂克种与平台非亲非故的字节码文件(*.class)(移植性好的缘由),这种字节码自然不可能被平台直接实践,运营时须要由解释器解释成对应平台的二进制机器码文件;大好些个人感到Java是风流倜傥种编写翻译型语言,但大家说Java便是编写翻译型语言,也是解释型语言也并对的。

二、解释型语言

定义:指用专门解释器对源程序逐行解释成特定平台的机器码并立即实施的言语;也正是把编写翻译型语言的编写翻译链接进程混到一齐同期完毕的。

解释型语言施行作用相当的低,且不可能脱离解释器运行,但它的跨平台型比较轻巧,只需提供特定解释器就可以。

广大的解释型语言有, Python(同期是脚本语言)与Ruby等。

三、脚本语言

定义:为了裁减古板的编辑撰写-编写翻译-链接-运转(edit-compile-link-run)进程而创办的微机编制程序语言。

特点:程序代码便是最后的施行文书,只是那个进程必要解释器的涉企,所以说脚本语言与解释型语言有不小的联系。脚本语言平日是被分解实行的,并且程序是文件文件。

一级的脚本语言有,JavaScript,Python,shell等。

此外常用的脚本语句种类

PHP是网页程序,也是脚本语言。是一款更专心于web页面开辟(前端呈现)的脚本语言,比如:德德cms,discuz。PHP程序也足以拍卖系统日志,配置文件等,php也可以调用系统命令。

Perl脚本语言。比shell脚本强大超多,语法灵活、复杂,完毕格局相当多,不易读,团队同盟困难,但仍不失为很好的脚本语言,存世大批量的主次软件。MHA高可用Perl写的

Python,不但能够做脚本程序开荒,也可以完毕web程序以至软件的支出。近五年更为多的小卖部都会要求会Python。

Shell脚本与php/perl/python语言的差异和优势?

shell脚本的优势在于管理操作系统底层的作业
(linux系统内部的运用都以shell脚本完成)因为有雅量的linux系统命令为它做支撑。2004四个指令都是shell脚本编程的强硬协助,极其是grep、awk、sed等。举例:黄金时代键软件设置、优化、监察和控制告急脚本,常规的工作应用,shell开垦更简约火速,切合运转的简要、易用、高效原则.

  PHP、Python优势在于付出运行工具以至web分界面包车型地铁管理工具,web业务的开支等。管理风姿洒脱键软件设置、优化,报告急察方脚本。常规专门的学问的行使等php/python也是能力所能达到成功的。不过付出功用和复杂性比用shell就差超级多了。

系统情状表明

[[email protected] scripts]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 
[[email protected] scripts]# uname -r
3.10.0-693.el7.x86_64
[[email protected] scripts]# getenforce 
Disabled
[[email protected] scripts]# systemctl status firewalld.service 
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

要设置PHP命令行提醒,你需求在Linux终端中使用下边包车型地铁php
-a(启用PHP交互作用情势)命令开启二个PHP交互作用shell。

1. 在安装完PHP和Apache2后,我们必要安装PHP命令行解释器。

1.1.5 系统中的shell

翻看系统中的命解释器

[[email protected] ~]# cat /etc/shells 
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin

常用操作系统的默许shell

1.Linux是Bourne Again shell(bash)

2.Solaris和FreeBSD缺省的是Bourne shell(sh)

3.AIX下是Korn Shell(ksh)

4.HP-UX缺省的是POSIX shell(sh)

[[email protected] ~]# echo $SHELL
/bin/bash

bash版本

[[email protected] scripts]# bash -version
GNU bash, 版本 4.2.46(2)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2011 Free Software Foundation, Inc.
许可证 GPLv3+: GNU GPL 许可证版本3或者更高 <http://gnu.org/licenses/gpl.html>

这是自由软件,您可以自由地更改和重新发布。
在法律允许的范围内没有担保. 

bash 破壳漏洞

使用 命令 env x='() { :;}; echo be careful' bash -c "echo this is a test"
如果返回结果为一行,则为正常,
 [[email protected] ~]# env x='() { :;}; echo be careful' bash -c "echo this is a test"
 this is a test

#解决办法 升级当前的bash版本
 yum install update bash

sh与bash 的关系

[[email protected] ~]#  ll /bin/sh
lrwxrwxrwx. 1 root root 4 11月 13 11:15 /bin/sh -> bash

/bin与 /user/bin 的关系

[[email protected] ~]# ll /bin -d
lrwxrwxrwx. 1 root root 7 11月 13 11:15 /bin -> usr/bin
$ php -a
# apt-get install php5-cli          [Debian 及类似系统]
# yum install php-cli               [CentOS 及类似系统]

1.2 脚本书写标准

然后,设置任黄伟亮西(比方说Hi Tecmint
::)作为PHP人机联作shell的命令提示符,操作如下:

接下去我们平淡无奇要做的是,在/var/www/html(那是 Apache2
在大部发行版中的工作目录)那些职位创设贰个内容为 <?php phpinfo(卡塔尔国;
?>,名称为 infophp.php
的文本来测量试验(PHP是或不是安装准确),奉行以下命令就可以。

1.2.1 脚本统生龙活虎存放目录

[[email protected] ~]# mkdir -p /server/scripts/
[[email protected] ~]# cd /server/scripts/
php > #cli.prompt=Hi Tecmint ::
# echo '<?php phpinfo(); ?>' > /var/www/html/infophp.php

1.2.2 接收解释器

注意格式 ↓

其间始发的”#!”字符又叫做幻数,在推行bash脚本的时候,内核会依照”#!”后的解释器来规定该用那二个程序解释这一个本子中的内容。

[[email protected] scripts]# head -1 /etc/init.d/*
==> /etc/init.d/functions <==
# -*-Shell-script-*-

==> /etc/init.d/netconsole <==
#!/bin/bash

==> /etc/init.d/network <==
#! /bin/bash

图片 4

接下来,将浏览器访问
,那将会在互联网浏览器中开辟该公文。

1.2.3 编辑脚本使用vim

运用 .vimrc 文件,能够快捷的生成开头的批注新闻

[[email protected] scripts]# cat  ~/.vimrc 
autocmd BufNewFile *.py,*.cc,*.sh,*.java exec ":call SetTitle()"

func SetTitle()
    if expand("%:e") == 'sh'
        call setline(1,"#!/bin/bash")
        call setline(2, "##############################################################")
        call setline(3, "# File Name: ".expand("%"))
        call setline(4, "# Version: V1.0")
        call setline(5, "# Author: clsn")
        call setline(6, "# Organization: http://blog.znix.top")
        call setline(7, "# Created Time : ".strftime("%F %T"))
        call setline(8, "# Description:")
        call setline(9, "##############################################################")
        call setline(10, "")
    endif
endfunc

使用后的效用

[[email protected] scripts]# cat  scripts_test.sh 
#!/bin/bash
##############################################################
# File Name: scripts_test.sh
# Version: V1.0
# Author: clsn
# Organization: http://blog.znix.top
# Created Time : 2017-12-04 11:39:57
# Description:  First scripts file
##############################################################

在Shell脚本中,跟在#前面的原委表示注释。注释部分不会被推行,仅给人看。注释能够自成意气风发行,也得以跟在指令前面,与命令同行。要养成写注释的习贯,方便温馨与旁人。

极致不要汉语注释,因为在差异字符集的系统会并发乱码。(字符集为zh_CN.UTF-8,为中文)。

启用PHP交互Shell

图片 5

1.2.4 文件名专门的职业

         名字要有意义,何况最终以 .sh 停止

况且,你也得以安装当前岁月作为你的下令行提醒符,操作如下:

检查PHP信息

1.2.5 开垦的正经八百和习贯小结

1卡塔尔(قطر‎ 放在统生机勃勃的目录

2卡塔尔 脚本以.sh为增加名

3State of Qatar 开端钦定脚本解释器。

4卡塔尔 先河加版本版权等信息,可布署~/.vimrc文件自动抬高。

5State of Qatar 脚本不要用粤语注释,尽量用波兰语注释。

6卡塔尔 代码书写美好习贯

  a、成对的故事情节一遍性写出来,幸免脱漏,如[  ]、’ ‘、” “等

  b、[  ]两端要有空格,先输入[  ],退格,输入2个空格,再退格写。

  c、流程调节语句贰遍书写完,再增加内容。(if 条件 ; then  内容;fi卡塔尔国ddd

  d、通过缩进让代码易读。

  f、脚本中的引号都以俄语状态下的引号,别的字符也是克罗地亚共和国语状态。

php > #cli.prompt=`echo date('H:m:s');` >

22:15:43 >

无需其余浏览器,在Linux终端中也得以博得生龙活虎致的结果。在Linux命令行中执行/var/www/html/infophp.php,如:

1.3 shell脚本的试行

7. 每便输出后生可畏屏

# php -f /var/www/html/infophp.php

1.3.1 施行脚本的措施

sh/bash   scripts.sh 
chown +x   ./scripts.sh  && ./scripts.sh  
source scripts.sh
. (空格) scripts.sh
cat oldboyedu.sh |bash  # 效率较低

*source 与 . (点) 的作用***

soucre命令

[[email protected] ~]# help source  |head -2
source: source 文件名 [参数]
    在当前 shell 中执行一个文件中的命令。

. (点)

[[email protected] scripts]# help . |head -2
.: . 文件名 [参数]
    在当前 shell 中执行一个文件中的命令。

在大家上风姿罗曼蒂克篇随笔中,我们已经在原本命令中经过管道在非常多地点使用了less命令。通过该操作,大家得以在这里么些不能意气风发屏全部出口的地点得到分屏展现。但是,我们得以经过配备php.ini文件,设置pager的值为less以每一回输出大器晚成屏,操作如下:

图片 6

1.3.2 sh 于 source的区别

图片 7

[[email protected] scripts]# sh  clsn_test.sh 
Hello World!
[[email protected] scripts]# echo $clsn
#  sh  新建一个Shell窗口(新建一个进程)执行一个文件中的命令。

[[email protected] scripts]# source clsn_test.sh 
Hello World!
[[email protected] scripts]# echo $clsn
Hello World!

面试题:

问sh test.sh后echo $user返回的结果__空_ ?

[[email protected] scripts]# cat test.sh 
#!/bin/bash
user=`whoami`
$ php -a
php > #cli.pager=less

从命令行检查PHP信息

1.4 Shell的变量

图片 8

鉴于出口结果太大,我们能够透过管道将上述输出结果输送给 less
命令,那样就足以叁次输出黄金时代屏了,命令如下:

1.4.1 什么是变量

变量能够分成两类:景况变量(全局变量)和平日变量(局地变量)

  情状变量也可称为全局变量,能够在开立他们的Shell及其派生出来的大肆子进度shell中利用,情状变量又可分为自定义遭遇变量和Bash内置的景况变量

  平日变量也可称之为局地变量,只好在创制他们的Shell函数或Shell脚本中选用。普通变量通常是由开采者客户支付脚本程序时成立的。

         优越变量

节制PHP荧屏输出

# php -f /var/www/html/infophp.php | less

1.4.2 景况变量

使用 env/declare/set/export -p
命令查看系统中的意况变量,那四个指令的的输出形式稍有不相同。

[[email protected] scripts]# env
XDG_SESSION_ID=1
HOSTNAME=clsn
TERM=linux
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=10.0.0.1 5537 22
SSH_TTY=/dev/pts/0
USER=root
~~~

         输出三个系统中的 景况变量

[[email protected] ~]# echo $LANG
zh_CN.UTF-8

与此相类似,下一次当您运行二个限令(举例说条调节和测量试验器phpinfo(卡塔尔(قطر‎;)的时候,而该命令的出口内容又太过宏大而不能牢固在生龙活虎屏,它就能自行发出符合您眼下显示器的出口结果。

图片 9

1.4.3 普通变量

本地变量在客商日前的Shell生存期的本子中接纳。比方,本地变量OLDBOY取值为bingbing,那个值在顾客近些日子Shell生存期中有含义。如若在Shell中运行另一个经过或抽离,本地变量值将不著见到成效       

概念普通变量推行

[[email protected] ~]# a=1
[[email protected] ~]# b='2'
[[email protected] ~]# c="3"
[[email protected] ~]# echo "$a"
1
[[email protected] ~]# echo "$b"
2
[[email protected] ~]# echo "${c}"

提醒:$变量名代表输出变量,能够用$c和${c}二种用法

总计:延续普通字符串内容赋值给变量,不管用什么样引号或许不用引号,它的剧情是哪些,打字与印刷变量就输出什么

php > phpinfo();

反省有着PHP音讯

1.4.4 export命令

[[email protected] ~]# help export 
export: export [-fn] [名称[=值] ...] 或 export -p
为 shell 变量设定导出属性。

标记每个 NAME 名称为自动导出到后续命令执行的环境。如果提供了 VALUE
则导出前将 VALUE 作为赋值。

*export指令的验证***

时下shell窗口及子shell窗口生效

在新开的shell窗口不会生效,生效须要写入配置文件

# 定义变量

[[email protected] scripts]# CSLN=clsn
[[email protected] scripts]# export CSLN1=1

# 当前窗口查看

[[email protected] scripts]# echo $CSLN
clsn
[[email protected] scripts]# echo $CSLN1
1

# 编写测验脚本

[[email protected] scripts]# vim quanju.sh 
#!/bin/bash
echo $CSLN
echo $CSLN1

# 使用sh执行

[[email protected] scripts]# sh  quanju.sh 

1

# 使用source 执行

[[email protected] scripts]# source quanju.sh 
clsn
1

图片 10

此间,‘-f‘选项深入分析并实施命令后紧跟着的文书。

1.4.5 碰到变量相关安顿文件

/etc/proflie

/etc/bashrc

~/.bashrc

~/.bash_profile

/etc/proflie.d/  # 目录

*四文件读取顺序(CentOS6和7都一样)*

① /etc/profile

② ~/.bash_profile

③ ~/.bashrc

④ /etc/bashrc

图片 11

文件读取进度暗意图

证实四文书读取顺序的点子

sed -i '1a echo "$(date +%T-%s) /etc/profile1" >>/tmp/clsn' /etc/profile
sed -i '$a echo "$(date +%T-%s) /etc/profile2" >>/tmp/clsn' /etc/profile
sed -i '1a echo "$(date +%T-%s) /etc/bashrc1" >>/tmp/clsn' /etc/bashrc
sed -i '$a echo "$(date +%T-%s) /etc/bashrc2" >>/tmp/clsn' /etc/bashrc
sed -i '1a echo "$(date +%T-%s) ~/.bashrc1" >>/tmp/clsn' ~/.bashrc
sed -i '$a echo "$(date +%T-%s) ~/.bashrc2" >>/tmp/clsn' ~/.bashrc
sed -i '1a echo "$(date +%T-%s) ~/.bash_profile1" >>/tmp/clsn' ~/.bash_profile
sed -i '$a echo "$(date +%T-%s) ~/.bash_profile2" >>/tmp/clsn' ~/.bash_profile

PHP新闻输出

2.
我们能够直接在Linux命令行使用phpinfo(卡塔尔(قطر‎这么些极其常有价值的调护医疗工具而无需从文件来调用,只需执行以下命令:

1.4.6 遭逢变量的学识小结

ü 变量名平常要大写。

ü 变量能够在自己的Shell及子Shell中运用。

ü 常用export来定义景况变量。

ü 实行env暗中认可能够显得全体的情况变量名称及相应的值。

ü 输出时用“$变量名”,裁撤时用“unset变量名”。

ü 书写crond定期职务时要留神,脚本要用到的景况变量最棒先在所施行的Shell脚本中再一次定义。

ü 假使期望遇到变量永恒生效,则能够将其坐落客户景况变量文件或全局遇到变量文件里。

8. 建议和TAB补全

# php -r 'phpinfo();'

1.4.7 变量中引号的利用

唯有在变量的值中有空格的时候,会选用引号。

单引号与双引号的区分在于,是还是不是能够分析特殊符号。

[[email protected] ~]# name=znix
[[email protected] ~]# name2='clsn'
[[email protected] ~]# name3="http://blog.znix.top"
[[email protected] ~]# echo $name
znix
[[email protected] ~]# echo $name2
clsn
[[email protected] ~]# echo $name3
http://blog.znix.top
[[email protected] ~]# name4='cl sn'
[[email protected] ~]# echo $name4
cl sn
[[email protected] ~]# name5="cl sn"
[[email protected] ~]# echo $name5
cl sn
[[email protected] ~]# name6='cl sn $PWD'
[[email protected] ~]# echo $name6
cl sn $PWD
[[email protected] ~]# name6="cl sn $PWD"
[[email protected] ~]# echo $name6
cl sn /root

PHP
shell丰盛智能,它能够来得给您提议和進展TAB补全,你能够通过TAB键来使用该成效。尽管对于你想要用TAB补全的字符串来讲有多少个筛选,那么您须要利用若干次TAB键来成功,别的情形则动用一次就可以。

图片 12

1.4.8 普通变量的必要

1卡塔尔    
内容是纯数字、简单的总是字符(内容中不带任何空格)时,定义时能够不加任何引号,举例:

a.ClsnAge=22

b.NETWORKING=yes

2卡塔尔(قطر‎    
未有异样景况时,字符串生龙活虎律用双引号定义赋值,非常是多少个字符串中间有空格时,比方:

a.NFSD_MODULE=”no load”

b.MyName=”Oldboy is a handsome boy.”

3State of Qatar    
当变量里的源委须要原样输出时,要用单引号(M),这样的供给极少,比如:

a.OLDBOY_NAME=’OLDBOY’

变量使用反引号赋值

[[email protected] scripts]# time=`date`
[[email protected] scripts]# echo $time
2017年 12月 05日 星期二 09:02:06 CST

[[email protected] scripts]# file=`ls`
[[email protected] scripts]# echo $file
clsn_test.sh panduan.sh quanju.sh yhk.sh

使用${}

打印变量的时候幸免现身“Louis Cha新著”的主题素材

[[email protected] scripts]# time=`date`
[[email protected] scripts]# echo $time_day

[[email protected] scripts]# echo ${time}_day
2017年 12月 05日 星期二 09:02:06 CST_day
[[email protected] scripts]# echo $time-day
2017年 12月 05日 星期二 09:02:06 CST-day

编纂脚本测量检验${}

 # 使用脚本测试
 [[email protected] scripts]# vim bianliang.sh 
 #!/bin/bash
 #############################################################
 # File Name: bianliang.sh
 # Version: V1.0
 # Author: clsn
 # Organization: http://blog.znix.top
 # Created Time : 2017-12-05 09:10:29
 # Description:
 #############################################################

 time=`date`
 echo $timeday
 echo ${time}day

 [[email protected] scripts]# sh  bianliang.sh 

 2017年 12月 05日 星期二 09:11:19 CSTday

假使有逾越二个的可能,请使用若干遍TAB键。

PHP调节和测量试验工具

1.4.9 定义变量名技能

1. 变量名只好为字母、数字或下划线,只好以字母或下划线起先。

2. 变量名的定义要有自然的职业,而且要见名知意。

示例:

ClsnAge=22       #<==每种单词的首字母大写的写法

clsn_age=22      #<==单词之间用”_”的写法

clsnAgeSex=man 
 #<==驼峰语法:第3个单词的首字母小写,其他单词首字母大写

CLSNAGE=22       #<==单词全大写的写法

3. 相仿的变量定义、赋值常用双引号;简单接二连三的字符串能够不加引号;希望原样输出时选拔单引号。

4. 希望变量的内容是命令的分析结果时,要用反引号”,或然用$(卡塔尔把命令括起来再赋值。

php > ZIP [TAB] [TAB]

此间,‘-r‘ 选项会让PHP代码在Linux终端中不带<和>标记直接实行。

1.5 特殊变量

若果只有三个可能,只要利用三次TAB键。

3. 以相互形式运营PHP并做一些数学生运动算。这里,‘-a‘
选项用于以互相形式运营PHP。

1.5.1 地点变量

常用的非常规地方参数表达

位置变量

作用说明

$0

获取当前执行的shell脚本的文件名,如果执行脚本带路径那么就包括脚本路径。

$n

获取当前执行的shell脚本的第n个参数值,n=1..9,当n为0时表示脚本的文件名,如果n大于9用大括号括起来{10},参数以空格隔开。

$#

获取当前执行的shell脚本后面接的参数的总个数

$*

获取当前shell的所有传参的参数,不加引号同[email protected];如果给$*加上双引号,例如: “$*”,则表示将所有的参数视为单个字符串,相当于“$1$2$3”。

[email protected]

获取当前shell的所有传参的参数,不加引号同$*;如果给[email protected]加上双引号,例如: “[email protected]”,则表示将所有参数视为不同的独立字符串,相当于“$1” “$2” “$3” “……”,这是将参数传递给其他程序的最佳方式,因为他会保留所有内嵌在每个参数里的任何空白。

当“$*”和“[email protected]”都加双引号时,两者有区别,都不加双引号时,两者无区别。

*$0,$1.$2 ~ 参数实行***

[[email protected] scripts]# vim chanshu.sh
#!/bin/bash
############################################################# 
# File Name: chanshu.sh
# Version: V1.0
# Author: clsn
# Organization: http://blog.znix.top
# Created Time : 2017-12-05 09:39:16
# Description:
############################################################# 

echo $0
echo "第一个参数:" $1
echo "第二个参数:" $2
echo "第11个参数:" ${11}
[[email protected] scripts]# sh chanshu.sh
chanshu.sh
第一个参数:
第二个参数:
第11个参数:
[[email protected] scripts]# sh chanshu.sh 1 2 3 4 5 6 7 8 9 10 11 
chanshu.sh
第一个参数: 1
第二个参数: 2
第11个参数: 11

*$# 参数执行***

[[email protected] scripts]# vim chanshu.sh
#############################################################
# File Name: chanshu.sh
# Version: V1.0
# Author: clsn
# Organization: http://blog.znix.top
# Created Time : 2017-12-05 09:39:16
# Description:
#############################################################


echo $0
echo "第一个参数:" $1
echo "第二个参数:" $2
echo "第10个参数:" ${10}
echo "第11个参数:" ${11}
echo "参数个数:" $#



[[email protected] scripts]# sh chanshu.sh 55 2 3 4 5 6 7 8 9 10 11 112
chanshu.sh
第一个参数: 55
第二个参数: 2
第10个参数: 10
第11个参数: 11
参数个数: 12

$ 参数施行***

[[email protected] scripts]# vim chanshu.sh
#############################################################
# File Name: chanshu.sh
# Version: V1.0
# Author: clsn
# Organization: http://blog.znix.top
# Created Time : 2017-12-05 09:39:16
# Description:
#############################################################

echo $0
echo "第一个参数:" $1
echo "第二个参数:" $2
echo "第10个参数:" ${10}
echo "第11个参数:" ${11}
echo "参数个数:" $#
echo "参数:" $*
"chanshu.sh" 18L, 456C 已写入                                  
[[email protected] scripts]# sh chanshu.sh 55 2 3 4 5 6 7 8 9 10 11 112
chanshu.sh
第一个参数: 55
第二个参数: 2
第10个参数: 10
第11个参数: 11
参数个数: 12
参数: 55 2 3 4 5 6 7 8 9 10 11 112

$
[email protected]
相比较施行*

[[email protected] scripts]# set -- "I am" handsome boy..
[[email protected] scripts]# echo $1
I am
[[email protected] scripts]# echo $2
handsome
[[email protected] scripts]# echo $3
boy..
[[email protected] scripts]# echo $*
I am handsome boy..
[[email protected] scripts]# echo [email protected]
I am handsome boy..

[[email protected] scripts]# for i in $*;do echo $i ;done
I
am
handsome
boy..
[[email protected] scripts]# for i in [email protected];do echo $i ;done
I
am
handsome
boy..
[[email protected] scripts]# for i in "[email protected]";do echo $i ;done
I am
handsome
boy..
[[email protected] scripts]# for i in "$*";do echo $i ;done
I am handsome boy..
php > #cli.pager [TAB]
# php -a

Interactive shell

php > echo 2+3;
5
php > echo 9-6;
3
php > echo 5*4;
20
php > echo 12/3;
4
php > echo 12/5;
2.4
php > echo 2+3-1;
4
php > echo 2+3-1*3;
2
php > exit

1.5.2 进度状态变量

Shell进度的奇特状态变量表明

位置变量

作用说明

$?

获取执行上一个指令的执行状态返回值(0为成功,非零为失败),这个变量最常用

$$

获取当前执行的Shell脚本的进程号(PID),这个变量不常用,了解即可

$!

获取上一个在后台工作的进程的进程号(PID),这个变量不常用,了解即可

$_

获取在此之前执行的命令或脚本的最后一个参数,这个变量不常用,了解即可

进度参数执行

[[email protected] scripts]# echo $?
0
[[email protected] scripts]# echo $$
1368
[[email protected] scripts]# echo $!

[[email protected] scripts]# echo $_
echo

您能够一向按TAB键来获得提出的补全,直到该值满意须要。全体的行事都将记录到~/.php-history文件。

输入 ‘exit‘ 可能按下 ‘ctrl+c‘ 来关闭PHP交互作用形式。

1.5.3 echo参数表明

参数

参数说明

-n

不要追加换行

-e

启用下列反斜杠转义的解释

-E

显式地抑制对于反斜杠转义的解释

`echo’ 对下列反斜杠字符进行转义:

n

换行

r

回车

t

横向制表符

b

退格

v

纵向制表符

c

抑制更多的输出

要检查你的PHP人机联作shell活动日志,你能够奉行:

图片 13

1.6 定义变量的议程

$ nano ~/.php_history | less

启用PHP人机联作格局

1.6.1 三种概念变量的格局

  1、直接赋值

  2、传参 (传递参数卡塔尔国

  3、交互作用式设置变量,使用read命令

图片 14

4.
你能够独自将PHP脚本作为shell脚本来运行。首先,创设在你当前职业目录中成立一个PHP样例脚本。

1.6.2 read命令表明

在命令行中使用

[[email protected] scripts]# read
132
[[email protected] scripts]# echo $REPLY 
132
[[email protected] scripts]# read clsn 
456
[[email protected] scripts]# echo $clsn
456
[[email protected] scripts]# echo $REPLY 
132

在剧本中动用

[[email protected] scripts]# vim clsn_test.sh 
#!/bin/bash
read -p '请输入:'  clsn

echo $clsn

实施结果

[[email protected] scripts]# sh clsn_test.sh 
请输入:clsn_znix
clsn_znix

read命令的支援表明

[[email protected] scripts]# read --help
-bash: read: --: 无效选项
read: 用法:read [-ers] [-a 数组] [-d 分隔符] [-i 缓冲区文字] [-n 读取字符数] [-N 读取字符数] [-p 提示符] [-t 超时] [-u 文件描述符] [-s不显示终端的任何输入] [名称 ...]

检查PHP交互Shell日志

# echo -e '#!/usr/bin/php/n<?php phpinfo(); ?>' > phpscript.php

1.6.3 定义方法实施

直接赋值方法

[[email protected] scripts]# vim bianliang.sh
# File Name: bianliang.sh
# Version: V1.0
# Author: clsn
# Organization: http://blog.znix.top
# Created Time : 2017-12-05 09:10:29
# Description:
##############################################################
name=CLSN
age=22
sex=Man
hobby=`ls`
ethFile=/etc/sysconfig/network-scripts/ifcfg-eth0

echo $hobby
ls $ethFile
[[email protected] scripts]# sh  bianliang.sh
bianliang.sh chanshu.sh clsn.sh clsn_test.sh panduan.sh quanju.sh xiugaizhuji.sh yhk.sh
/etc/sysconfig/network-scripts/ifcfg-eth0

*传参 (传递参数卡塔尔(قطر‎***

[[email protected] scripts]# vim bianliang.sh
##############################################################
# File Name: bianliang.sh
# Version: V1.0
# Author: clsn
# Organization: http://blog.znix.top
# Created Time : 2017-12-05 09:10:29
# Description:
##############################################################
name=CLSN
age=22
sex=Man
hobby=$1
ethFile=$2

echo $hobby
ls $ethFile
[[email protected] scripts]# sh  bianliang.sh  clsn /etc/hostname 
clsn
/etc/hostname

人机联作式设置变量 read

[[email protected] scripts]# vim yhk.sh 
#!/bin/bash
##############################################################
# File Name: yhk.sh
# Version: V1.0
# Author: clsn
# Organization: http://blog.znix.top
# Created Time : 2017-12-04 17:01:44
# Description:
##############################################################
read -p  "请输入你的银行卡号:"  Yhk
read -s -p  "请输入密码:" miMa
echo
echo "你的银行卡号:"  $Yhk
echo "你的密码为:" $miMa
# 测试结果
[[email protected] scripts]# sh  yhk.sh 
请输入你的银行卡号:123456
请输入密码:
你的银行卡号: 123456
你的密码为: 123456

9. 你可以在PHP人机联作shell中央银行使颜色,你所要求了然的单纯是颜色代码。

在意,大家在该PHP脚本的第意气风发行使用#!/usr/bin/php,就如在shell脚本中那么(/bin/bash)。第风度翩翩行的#!/usr/bin/php告诉Linux命令行用
PHP 解释器来剖判该脚本文件。

1.6.4 写多少个并行脚本,达成能够定义主机名及IP地址

本子内容

[[email protected] scripts]# cat xiugaizhuji.sh 
#!/bin/bash
#############################################################
# File Name: jiaohu.sh
# Version: V1.0
# Author: clsn
# Organization: http://blog.znix.top
# Created Time : 2017-12-05 10:55:42
# Description:
#############################################################

ethFile=/etc/sysconfig/network-scripts/ifcfg-eth[01]
Now_eth=`hostname -I|awk -F "[. ]+" '{print $4}'`

read -p "请输入主机名:" Hostname
read -p "请输入IP地址的主机位:" HostIP

hostnamectl set-hostname  $Hostname

sed  -i "s#${Now_eth}#${HostIP}#g" $ethFile 

read -p "是否重启服务器:{yes/no}"  REboot

if [ $REboot == yes ]
then 
   echo "系统将在10秒后重启!"
   shutdown -r  10 
else
   echo "请稍后手动重启系统!"
fi

本子测验结果

[[email protected] scripts]# sh xiugaizhuji.sh
请输入主机名:clsn
请输入IP地址的主机位:180
是否重启服务器:{yes/no}yes
系统将在10秒后重启!
[[email protected] scripts]# sh xiugaizhuji.sh
请输入主机名:clsn
请输入IP地址的主机位:180
是否重启服务器:{yes/no}no
请稍后手动重启!

选取echo来打字与印刷种种颜色的输出结果,肖似那样:

说不上,让该脚本可实行:

1.7 变量的子串

php > echo "color_code1 TEXT second_color_code";
# chmod 755 phpscript.php

1.7.1 变量子串表明

表达式

说明

${parameter}

返回变量$parameter的内容

${#parameter}

返回变内容的长度(按字符),也适用于特殊变量

${parameterioffset}

在变量${parameter}中,从位置offset之后开始提取子串到结尾

${parameter:offset:length}

在变量${parameter}中,从位置offset之后开始提取长度为length的子串

${parameter#word}

从变量${parameter}开头开始删除最短匹配的word子串

${parameter##word}

从变量${parameter}开头开始删除最长匹配的word子串

${parameter%word}

从变量${parameter}结尾开始删除最短匹配的word子串

${parameter%%word}

从变量${parameter}结尾开始删除最长匹配的word子串

${parameter/pattem/string}

使用string代替第一个匹配的pattern

${parameter//pattem/string}

使用string代替所有匹配的pattern

计量变赋值的尺寸

[[email protected] scripts]# clsn=http://blog.znix.top
[[email protected] scripts]# echo ${clsn} |wc -L 
20
[[email protected] scripts]# echo ${#clsn} 
20
[[email protected] scripts]# time echo ${clsn} |wc -L 
20

real    0m0.002s
user    0m0.002s
sys    0m0.000s
[[email protected] scripts]# time echo ${#clsn} 
20

real    0m0.000s
user    0m0.000s
sys    0m0.000s

截取变量中的字符

[[email protected] scripts]# clsn=abcABC123ABCabc
[[email protected] scripts]# echo ${clsn#abc}
ABC123ABCabc
[[email protected] scripts]# echo ${clsn##abc}
ABC123ABCabc
[[email protected] scripts]# echo ${clsn%abc}
abcABC123ABC
[[email protected] scripts]# echo ${clsn%%abc}
abcABC123ABC
[[email protected] scripts]# echo ${clsn#a*c}
ABC123ABCabc
[[email protected] scripts]# echo ${clsn##a*c}

[[email protected] scripts]# echo ${clsn%a*c}
abcABC123ABC
[[email protected] scripts]# echo ${clsn%%a*c}

[[email protected] scripts]# echo ${clsn#a*C}
123ABCabc
[[email protected] scripts]# echo ${clsn#a*C}
123ABCabc
[[email protected] scripts]# echo ${clsn##a*C}
abc
[[email protected] scripts]# echo ${clsn%a*c}
abcABC123ABC
[[email protected] scripts]# echo ${clsn%A*c}
abcABC123
[[email protected] scripts]# echo ${clsn%%A*c}
abc

轮流变量内容

[[email protected] scripts]# echo $clsn
abcABC123ABCabc
[[email protected] scripts]# echo ${clsn/abc/clsn}
clsnABC123ABCabc
[[email protected] scripts]# echo ${clsn//abc/clsn}
clsnABC123ABCclsn

关于上述相称删除的总计

#表示从幵头删除相配最短。

##意味着从领头删除相称最长。

%表示从最终删除相配最短。

%%表示从最终删除相称最长。

a*c表示特其余突符串,*代表十二分全数,a*c匹配带头为a、中间为私下几个字符、结尾为c的字符串。

a*C表示非常的字符串,*表示十分全数,a*C相称早前为a、中间为专断多少个字符、结尾为C的字符串。

关于替换的计算

三个“/”表示替换相配的第-个字符串。

多个“/”表示替换相配的享有字符串。

具体来讲是:

紧接着来运作它,

1.7.2 Shell的超过常规规扩充变量表明

表达式

说明

${parameter:-word}

如果parameter的变量值为空或未赋值,则会返回word字符串并替代变量的值用途.如果变量未定义,则返回备用的值,防止变量为空值或因未定义而导致异常

${parameter:=word}

如果parameter的变量值为空或未赋值,则设置这个变量值为word,并返回其值。位置变量和特殊变量不适用用途:基本同上一个${parameter>word},但该变量又额外给parameter变量赋值了

${parameter:?word}

如果parameter变量值为空或未赋值,那么word字符串将被作为标准错误输出,否则输出变量的值。用途:用于捕捉由于变量未定义而导致的错误,并退出程序

${parameter:+word}

如果parameter变量值为空或未赋值,则什么都不做,否则word字符串将替代变量的值

优越变量实践

剧本内容

[[email protected] scripts]# cat  clsn.sh 
#!/bin/bash
#############################################################
# File Name: clsn.sh
# Version: V1.0
# Author: clsn
# Organization: http://blog.znix.top
# Created Time : 2017-12-05 12:13:38
# Description:
#############################################################
dir=
echo ${dir:-/tmp}
echo ${dir}
echo ${dir:=/mnt}
echo ${dir}
dir2= (空格)
echo ${dir2-/tmp}
echo ${dir2}
echo ${dir2:-/tmp}
echo ${dir2}
echo ${dir2=/mnt}
echo ${dir2}

测量试验结果

[[email protected] scripts]# sh clsn.sh 
/tmp

/mnt
/mnt


/tmp

由来shell中的变量就都介绍完了

php > echo "/033[0;31m Hi Tecmint /x1B[0m";
# ./phpscript.php

1.8 变量的数值计算

图片 15

5.
你能够完全靠自身通过相互作用shell来创设轻松函数,这你一定会被惊到了。上面是渐进的指南。

1.8.1 仅扶植整数的演算

echo $((数学生运动算表明式State of Qatar卡塔尔(قطر‎

# 形式一
[[email protected] scripts]# echo $((1 + 1))
2
[[email protected] scripts]# echo $((2*7-3/6+5))
19
# 形式二
[[email protected] scripts]# ((clsn=2*8))
[[email protected] scripts]# echo $clsn
16
# 形式三
[[email protected] scripts]# znix=$((2*7-3/6+5))
[[email protected] scripts]# echo $znix
19

拉开成品(首要卡塔尔(قطر‎

i++ 自增1

i– 自减1

++i

–i

         示例:

[[email protected] scripts]# i=1
[[email protected] scripts]# echo $((i++))
1
[[email protected] scripts]# echo $((i++))
2
[[email protected] scripts]# echo $((i--))
3
[[email protected] scripts]# echo $((i--))
2
[[email protected] scripts]# echo $((i--))
1
[[email protected] scripts]# echo $((++i))
1
[[email protected] scripts]# echo $((++i))
2
[[email protected] scripts]# echo $((++i))
3
[[email protected] scripts]# echo $((--i))
2
[[email protected] scripts]# echo $((--i))
1
[[email protected] scripts]# echo $((--i))
0

记念方法:++,–

变量a在前,表达式的值为a,然后a自增或自减,变量a在符号后,表明式值自增或自减,然后a值自增或自减。

let命令

[[email protected] scripts]# i=1
[[email protected] scripts]# i=i+1
[[email protected] scripts]# echo $i
i+1

[[email protected] scripts]# i=1
[[email protected] scripts]# let i=i+1
[[email protected] scripts]# echo $i
2

expr 命令

1.大背头乘除

2.论断扩大名

3.判断输入是不是为整数,非整数再次来到值为2

4.测算变量的长短

[[email protected] scripts]# expr 1+1
1+1
[[email protected] scripts]# expr 1 + 1
2
[[email protected] scripts]# expr 1 * 1
expr: 语法错误
[[email protected] scripts]# expr 1 * 1
1

非整数再次来到值为2 示例:

[[email protected] scripts]# expr 1 + 1 
2
[[email protected] scripts]# echo $?
0
[[email protected] scripts]# expr -1 + 1 
0
[[email protected] scripts]# echo $?
1
[[email protected] scripts]# expr a + 1 
expr: 非整数参数
[[email protected]clsn scripts]# echo $?
2

$[]运算符

[[email protected] scripts]# echo $[1+2]
3
[[email protected] scripts]# echo $[1-2]
-1
[[email protected] scripts]# echo $[1*2]
2
[[email protected] scripts]# echo $[1/2]
0

typeset命令实行演算

[[email protected] scripts]# typeset -i A=2017 B=2018
[[email protected] scripts]# A=A+B
[[email protected] scripts]# echo $A
4035

在PHP Shell中启用彩色

开启PHP交互作用方式。

1.8.2 能够实行小数运算的下令

bc    命令

# 安装 bc  依赖于base源
[[email protected] scripts]# yum -y install bc

  人机联作形式测验bc命令

[[email protected] scripts]# bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc. 
1+1
2
[[email protected] scripts]# echo 1+1.1|bc
2.1

免交互作用形式测量检验bc命令

[[email protected] scripts]# echo 'scale=6;1/3'|bc
.333333

python 命令

[[email protected] scripts]#  file `which yum `
/usr/bin/yum: Python script, ASCII text executable
[[email protected] scripts]# python 
>>> import os
>>> os.system('df -h')
>>> 1+1.1
2.1
>>>exit()

awk 命令

[[email protected] ~]# echo "7.7 3.8"|awk '{print ($1-$2)}'
3.9
[[email protected] ~]# echo "358 113"|awk '{print ($1-3)/$2}'
3.14159
[[email protected] ~]# echo "3 9"|awk '{print ($1+3)*$2}'
54
[[email protected] scripts]# awk BEGIN'{print 1.2+3.3}'
4.5

到近期停止,我们已经观察,按回车键意味着实行命令,然则PHP
Shell中逐条命令结尾的事务所是必需的。

# php -a

1.8.3 运算相关演练题

10. 在PHP shell中用basename(卡塔尔国输出路线中最终一片段

始建三个函数,将它命名称叫 addition。同一时间,申明多少个变量 $a 和 $b。

1.8.3.1 【练习题】实现多少个加减乘除等效果的总计器

福寿齐天脚本:

[[email protected] scripts]# cat jishuanqi.sh 
#!/bin/bash
#############################################################
# File Name: jishuanqi.sh
# Version: V1.0
# Author: clsn
# Organization: http://blog.znix.top
# Created Time : 2017-12-06 08:57:13
# Description:
#############################################################

read -p "请输入第一个整数:" a
read -p "请输入第二个整数:" b


echo $a + $b =$(($a+$b))
echo $a - $b =$(($a-$b))
echo $a * $b =$(($a*$b))
echo $a / $b =$(($a/$b))

*         本子奉行进程:*

[[email protected] scripts]# sh jishuanqi.sh 
请输入第一个整数:12
请输入第二个整数:12
12 + 12 =24
12 - 12 =0
12 * 12 =144
12 / 12 =1

精练方法

[ro[email protected] scripts]# vim jishuanqi2.sh 
#!/bin/bash
#############################################################
# File Name: jishuanqi2.sh
# Version: V1.0
# Author: clsn
# Organization: http://blog.znix.top
# Created Time : 2017-12-06 15:02:41
# Description:
#############################################################
echo $(($1))

*         本子履行进度:*

[[email protected] scripts]# sh jishuanqi2.sh  1+1
2
[[email protected] scripts]# sh jishuanqi2.sh  1*9
9

PHP shell中的basename函数能够从提交的含有有到文件或目录路线的结尾巴部分分。

php > function addition ($a, $b)

1.8.3.2 【演练题】打字与印刷结果1+2+3+4+5+6+7+8+9+10=55

剧本内容

[[email protected] scripts]# vim yunshuan.sh
#!/bin/bash
#############################################################
# File Name: yunshuan.sh
# Version: V1.0
# Author: clsn
# Organization: http://blog.znix.top
# Created Time : 2017-12-06 09:40:31
# Description:
#############################################################

Num=`seq -s + 1 10`
echo  $Num=$(($Num))

剧本执行结果

[[email protected] scripts]# sh  yunshuan.sh
1+2+3+4+5+6+7+8+9+10=55

basename()样例#1和#2。

运用花括号来在个中为该函数定义准则。

1.9 补充表达

shell脚本中批量解说的点子

<<'EOF'
文件内容
EOF
   或
   使用 exit可以注释其之后的所有内容(类似注释,实质为不执行后面的内容)
php > echo basename("/var/www/html/wp/wp-content/plugins");
php > echo basename("www.tecmint.com/contact-us.html");
php > {

1.9.1 仿照效法文献

  本文出自“惨绿少年”,款待转发,转载请注明出处!

 

1.1 前言
1.1.1 为啥学 Shell Shell 脚本语言是完结 Linux/UNIX
系统处理及自动化运转所必得的机要工具,…

上述多少个样例将出口:

概念法则。这里,该准绳讲的是加多那五个变量。

plugins
contact-us.html
php { echo $a + $b;

图片 16

全体法则定义落成,通过关闭花括号来封装法规。

在PHP中打字与印刷基本名称

php {}

11.
您能够行使PHP交互作用shell在您的桌面创立文件(举例说test1.txt),就如上面这么轻易

测量检验函数,加多数字4和3,命令如下:

php> touch("/home/avi/Desktop/test1.txt");
php > var_dump (addition(4,3));

大家曾经见识了PHP人机联作shell在数学运算中有多美观,这里还也可以有越多一些事例会令你吃惊。

样例输出

7NULL

你能够运营以下代码来推行该函数,你能够测量检验不一致的值,你想来有一点点次都行。将中间的
a 和 b 替换到你协和的值。

php > var_dump (addition(a,b));

php > var_dump (addition(9,3.3));

12. 应用PHP人机联作shell打字与印刷例如像tecmint.com那样的字符串的长短

样例输出

12.3NULL

图片 17

创建PHP函数

你能够直接运维该函数,直至退出交互作用格局(ctrl+z)。同时,你也应当小心到了,上面输出结果中回到的数据类型为
NULL。那个主题素材可以通过必要 php 人机联作 shell用 return 代替 echo
再次来到结果来修补。

只须要在上边的函数的中 ‘echo‘ 证明用 ‘return‘ 来替换

替换

php { echo $a + $b;

php { return $a + $b;

剩余的事物和原理如故长久以来。

此地是三个样例,在该样例的出口结果中回到了合情合理的数据类型。

图片 18

PHP函数

永久都牢牢记住,顾客定义的函数不会从一个shell会话保留到下叁个shell会话,由此,黄金年代旦您退出交互作用shell,它就能舍弃了。

仰望您赏识本次教程。保持连线,你会赢得越来越多此类作品。保持关注,保持正规。请在上边包车型地铁商酌中为大家提供有价值的报告。点赞并分享,帮助大家扩散。

strlen函数用于获取内定字符串的长度。

php > echo strlen("tecmint.com");

图片 19

在PHP中打字与印刷字符串长度

13. PHP交互shell能够对数组排序,是的,你没听错

宣示变量a,并将其值设置为array(7,9,2,5,10卡塔尔国。

php > $a=array(7,9,2,5,10);

对数组中的数字举行排序。

php > sort($a);

以排序后的相继打字与印刷数组中的数字,同一时间打字与印刷序号,第叁个为[0]。

php > print_r($a);
Array
(
    [0] => 2
    [1] => 5
    [2] => 7
    [3] => 9
    [4] => 10
)

图片 20

在PHP中对数组排序

14. 在PHP交互Shell中获取π的值

php > echo pi();

3.1415926535898

15. 打字与印刷有个别数举例32的平方根

php > echo sqrt(150);

12.247448713916

16. 从0-10的限制内选用二个自便数

php > echo rand(0, 10);

图片 21

在PHP中赢得随机数

17. 获得有个别内定字符串的md5校验和sha1校验,举个例子,让咱们在PHP
Shell中检查有些字符串(例如说avi)的md5校验和sha1校验,并陆陆续续校验bash
shell生成的md5校验和sha1校验的结果。

php > echo md5(avi);
3fca379b3f0e322b7b7967bfcfb948ad

php > echo sha1(avi);
8f920f22884d6fea9df883843c4a8095a2e5ac6f

$ echo -n avi | md5sum
3fca379b3f0e322b7b7967bfcfb948ad  -

$ echo -n avi | sha1sum
8f920f22884d6fea9df883843c4a8095a2e5ac6f  -

图片 22

在PHP中检查md5校验和sha1校验

此间只是PHP Shell中所能赢得的职能和PHP
Shell的相互影响特性的惊鸿后生可畏瞥,这么些就是到方今截止作者所研讨的整套。保持连线,在评价中为大家提供你有价值的报告吧。为我们点赞并分享,扶助大家扩散哦。

发表评论

电子邮件地址不会被公开。 必填项已用*标注