首页 后端开发 php教程 shell脚本 PHP教程之PHP中shell脚本的使用方法分享

shell脚本 PHP教程之PHP中shell脚本的使用方法分享

Jul 29, 2016 am 08:48 AM
外壳脚本

作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支。
  PHP经过长时间的发展,很多用户都很了解PHP了,这里我发表一下个人理解,和大家讨论讨论。大多数情况下,我使用 exec() 命令和数据数组处理所有东西。或者对更简单的命令使用 shell_exec(),尤其是不关心结果时。如果仅需返回一个 PHP shell脚本,我就使用 passthru()。通常,我在不同的场合中使用不同的函数,并且有时它们是可以互换的。
  这完全取决于我的心情和要实现的目的。您可能提问的另一个问题是 “它们的长处是什么?”。如果您没有头绪,或者一个项目非常适合使用 shell 命令,但不知道如何使用,那么我在这里提供一些见解。如果您正在编写一个提供各种备份或文件传输功能的应用程序,您可以选择使用 shell_exec() 或这里提供的其他命令之一运行 rsync 支持的 PHP shell脚本。您可以编写 PHP shell脚本使其包含必要的 rsync 命令,然后使用 passthru() 根据用户的命令或 cron 作业执行它。
  例如,一位用户在您的应用程序中有适当的权限(比如管理员权限),他想将 50 个 PDF 文件从一个服务器发送到另一个服务器。那么,该用户需要在应用程序中导航到正确的位置,单击 Transfer,选择需要发送的 PDF,然后单击 Submit。在这个过程中,该表单应该有一个 PHP 脚本,它使用返回选项变量通过 passthru() 运行 rsync 脚本,这样您就知道是否发生问题,如下所示。
  清单 1. 通过 passthru() 运行 rsync 脚本的示例 PHP 脚本

复制代码 代码如下:


passthru('xfer_rsync.sh',$returnvalue);
if ($returnvalue != 0){
//we have a problem!
//add error code here
}else{
//we are okay
//redirect to some other page
}
?>


  如果您的应用程序需要列出进程或文件,或关于这些进程或文件的数据,您可以使用本文总结的命令之一轻松实现这个目的。例如,一个简单的 grep 命令能够帮助您找到匹配特定搜索条件的文件。将它与 exec() 命令一起使用可以将结果保存到一个数组中,这允许您构建一个 HTML 表或表单,它们又进一步允许您运行其他命令。
  到目前为止,我讨论了用户生成的事件 —— 用户只要按下按钮或单击链接,PHP 就运行相应的脚本。您还可以将独立的 PHP 脚本和 cron 或其他日程安排程序一起使用,从而实现一些有趣的效果。例如,如果您一个备份脚本,您可以通过 cron 运行它,或者将它打包到 PHP 脚本后在运行。
  为什么要这样做?这似乎是多余的,不是吗?不是这样的 —— 您需要这样考虑,您可以通过 exec() 或 passthru() 运行备份脚本,然后根据返回代码执行一些行为。如果出现错误,您可以将其记录到错误日志或数据库中,或发送一封警告电子邮件。如果脚本成功,您可以将原始的输出转储到数据库(例如,rsync 有一个详尽(verbose)模式,对随后诊断问题十分有用)。
  安全
  我们在这里简要讨论一下安全性:如果您接受用户输入并将信息传递到 shell,那么最好过滤用户输入。删除您认为有害的命令和不允许的内容,比如 sudo(作为超级用户运行)或 rm(删除)。事实上,您可能不希望用户发送开放的请求,而是让他们从列表中选择。
  例如,您运行一个接受文件列表作为参数的传输程序,您应该通过一系列复选框列出所有文件。用户可以选择和取消选择文件,并通过单击 Submit 激活 rsync shell 脚本。用户不能自己输入文件或使用正则表达式。
  本文从两个方面介绍的PHP shell脚本的用法,希望能给你带来帮助。

以上就介绍了shell脚本 PHP教程之PHP中shell脚本的使用方法分享,包括了shell脚本方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何将ESD文件转换为ISO格式 如何将ESD文件转换为ISO格式 Feb 19, 2024 am 08:37 AM

esd文件是Windows操作系统中使用的一种压缩格式,而ISO文件是一种光盘映像文件,用于创建光盘副本或虚拟光驱。当我们需要将esd文件转换为iso文件时,可能是因为ISO文件更常用,更易于使用。下面将为您介绍一些常用的方法来完成这个转换过程。方法一:使用ESDDecrypterESDDecrypter是一款专门用于将esd文件解密并转换为iso文件的

如何在Linux系统中执行.sh文件? 如何在Linux系统中执行.sh文件? Mar 14, 2024 pm 06:42 PM

如何在Linux系统中执行.sh文件?在Linux系统中,.sh文件是一种被称为Shell脚本的文件,用于执行一系列的命令。执行.sh文件是非常常见的操作,本文将介绍如何在Linux系统中执行.sh文件,并提供具体的代码示例。方法一:使用绝对路径执行.sh文件要在Linux系统中执行一个.sh文件,可以使用绝对路径来指定该文件的位置。以下是具体的步骤:打开终

Linux根文件系统的秘密 Linux根文件系统的秘密 Feb 15, 2024 pm 01:42 PM

Linux是一种开源、可移植、可定制的操作系统,它广泛应用于各种领域,如服务器、桌面、嵌入式设备等。Linux的核心是内核,它负责管理硬件资源和提供基本的服务。但是,内核并不是一个独立的实体,它需要一个文件系统来存储和访问各种数据和程序。文件系统是一种组织和管理文件的方法,它定义了文件的名称、位置、属性、权限等信息。在Linux中,有许多不同类型的文件系统,如ext4、xfs、btrfs等,它们各有特点和优势。但是,在所有的文件系统中,有一个特殊的文件系统,它是Linux系统的基础和核心,它就是

为何无法在Windows 7上执行bat文件 为何无法在Windows 7上执行bat文件 Feb 19, 2024 pm 03:19 PM

为什么win7不能运行bat文件最近,许多使用Windows7操作系统的用户反映他们无法运行.bat文件。这引发了广泛的讨论和疑惑。为什么一个良好运行的操作系统不能运行一个简单的.bat文件呢?首先,我们需要了解一下.bat文件的背景。.bat文件,也称为批处理文件,是一种纯文本文件,包含了一系列的命令,这些命令可以被Windows命令解释器(cmd.ex

面向初学者的Windows PowerShell脚本教程 面向初学者的Windows PowerShell脚本教程 Mar 13, 2024 pm 10:55 PM

我们为初学者设计了这份WindowsPowerShell脚本教程,无论您是技术爱好者还是希望提高脚本编写技能的专业人士。如果你对PowerShell脚本没有先验知识,这篇文章将从基础开始,为您量身定制。我们将帮助您掌握PowerShell环境的安装步骤,并逐步介绍PowerShell脚本的主要概念和功能。如果您已经做好准备,准备深入学习PowerShell脚本编程,那么让我们一起踏上这激动人心的学习之旅吧!什么是WindowsPowerShell?PowerShell是由微软开发的一个混合了命令

如何使用PowerShell自动执行任务 如何使用PowerShell自动执行任务 Feb 20, 2024 pm 01:51 PM

如果您是IT管理员或技术专家,您一定意识到自动化的重要性。尤其对于Windows用户来说,MicrosoftPowerShell是最佳的自动化工具之一。微软为满足您的自动化需求提供了各种工具,无需安装第三方应用程序。本指南将详细介绍如何利用PowerShell自动化执行任务。什么是PowerShell脚本?如果您有使用PowerShell的经验,您可能已经使用过命令来配置您的操作系统。脚本是.ps1文件中这些命令的集合。.ps1文件包含由PowerShell执行的脚本,例如基本的Get-Help

url文件怎么打开 url文件怎么打开 Mar 28, 2024 pm 06:27 PM

使用URL文件打开互联网资源的方法包括:使用网络浏览器双击打开。使用文本编辑器打开,复制链接地址并粘贴到浏览器地址栏。通过命令行,使用“start”或“open”命令指定URL文件路径。创建脚本文件,包含打开URL文件的命令。

Linux 中 CPU 利用率是如何算出来的? Linux 中 CPU 利用率是如何算出来的? Feb 15, 2024 am 11:15 AM

在线上服务器观察线上服务运行状态的时候,绝大多数人都是喜欢先用top命令看看当前系统的整体cpu利用率。例如,随手拿来的一台机器,top命令显示的利用率信息如下:这个输出结果说简单也简单,说复杂也不是那么容易就能全部搞明白的。例如:问题1:top输出的利用率信息是如何计算出来的,它精确吗?问题2:ni这一列是nice,它输出的是cpu在处理啥时的开销?问题3:wa代表的是iowait,那么这段时间中cpu到底是忙碌还是空闲?今天我们对cpu利用率统计进行深入的学习。通过今天的学习,你不但能了解c

See all articles