草庐IT

os-shell

全部标签

shell脚本的使用入门(超全)

目录1、shell的概述2、脚本的调用形式3、shell语法初识4、变量5、预设变量6、变量的扩展7、条件测试8、控制语句9、函数1、shell的概述shell是一种脚本语言脚本:本质是一个文件,文件里面存放的是特定格式的指令,系统可以使用脚本解析器翻译或解析指令并执行(它不需要编译)shell既是应用程序又是一种脚本语言(应用程序解析脚本语言)shell命令解析器:系统提供shell命令解析器:shashbash查看自己linux系统的默认解析:echo$SHELLshell脚本是一种脚本语言,我们只需使用任意文本编辑器,按照语法编写相应程序,增加可执行权限,即可在安装shell命令解释器的

在 OS X 10.8.2 中使用 MAMP 时,PHP 的 mail() 函数不起作用

我已经搜索了所有的解决方案,但都没有解决,因为我的问题与其他人不同。我是按照http://theandystratton.com/2009/fix-phps-mail-function-after-latest-os-x-leopard-update一步步解决的,但是当我在终端中运行命令tail-f/var/log/mail.log时,出现错误:sumomomatoMacBook-Pro.localpostfix/sendmail[51722]:fatal:chdir/Library/Server/Mail/Data/spool:Nosuchfileordirectory如果你因为我的

php - shell heredoc inside php heredoc

我在php脚本中有类似的东西:>$logFile如您所见,两个heredoc(BASH是php,EOF是shell)结束时人们认为是正确的,但是当我阅读创建的日志时,日志有这样的内容:...myloggedstringofanimportanteventEOFmyloggedstringofanotherimportanteventEOF...我检查了apache日志,它有以下条目:sh:line1:warning:here-documentatline0delimitedbyend-of-file(wanted`EOF')我做错了什么?拜托,我知道还有许多其他实现,例如使用php函数

php - 如何忽略 shell_exec 中的错误?

我在PHP中得到shell命令的输出为$str=shell_exec("command");并在终端中运行PHP脚本。当shell命令返回错误时,它会打印在终端上。我如何告诉shell_exec只返回命令输出而不返回任何错误输出? 最佳答案 您只需将stderr重定向到/dev/null即可丢弃错误输出$str=shell_exec("command2>/dev/null");非错误输出-stdout-将像以前一样存储到$str中。请注意,您不需要使用@运算符抑制shell_exec上的错误或将其包装到try-catchblock,

php - Python 的 os.execvp 等价于 PHP

我有一个正在运行的PHP命令行程序。我想直接从PHP连接到mysqlshell。我之前在Python中使用os.execvp完成过此操作,但我无法在PHP中使用同样的东西。我尝试了以下功能:系统直通执行shell_exec例子:system('mysql-uroot-pxxxxdb_name');但他们似乎都在等待mysql退出并返回一些东西。我真正想要的是让PHP启动mysqlshell然后自行退出。有什么想法吗? 最佳答案 如果你希望shell命令是交互式的,使用:system("mysql-uroot-pdb_name>`tt

php - 转义 Shell echo

我试着做我的研究,有很多调用shell命令的方法,还有更多的方法来去除有害字符,我正在使用stackoverflow寻求专家的最佳推荐。我希望找到像我见过的其他语言那样的东西,所以向命令发送参数实际上是通过函数传递的,例如:do_command("ls","-l",$Directory);它会为您处理$Directory变量中的任何有害内容。我还没有用PHP找到这个。这是我正在使用的代码:我知道有一个内置的PHP邮件功能几乎可以解决这个问题,但我正在运行多个SMTP服务器和msmtp是我使用的一个程序,它根据发送电子邮件的“帐户”发送电子邮件。在这种情况下,它将是“meyers”帐户。

php - 使用 PHP 而不是 shell 创建新的 HTTP 身份验证凭据

我知道可以通过这个shell脚本添加新的HTTP身份验证凭据:htpasswd-c.htpasswdtesting是否可以使用PHP脚本实现相同的目的?我知道我可以使用常规的PHP身份验证系统,但这不是我想要的。 最佳答案 您可以使用system执行此命令或exec添加您的用户。我创建了一个可能适合您的代码片段:请记住,htpasswd工具应该在您的PATH中 关于php-使用PHP而不是shell创建新的HTTP身份验证凭据,我们在StackOverflow上找到一个类似的问题:

php - 使用 OS X Lion 在 MAMP 上使用 codeception 和 phpunit

运行:MAMP2.0.5PHP5.3.6(与MAMP捆绑)MacOSXLion10.7.2我的目标是获得Codeception在我的MAMP项目中工作和使用的测试框架。我正在关注theinstructionshere关于如何安装它。Pear已安装并且工作正常。我可以使用这些命令安装Codeception:$pearchannel-discovercodeception.com/pear$pearinstallcodeception/Codeception安装后,当我尝试运行codecept命令时,出现以下错误:Warning:require_once(Codeception/autol

php - 如何将 PHP 变量传递给 Shell 脚本?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:passparameterstophpwithshell我在shell脚本中运行一个php脚本#!/bin/shphpfile.phpShell将运行脚本并显示php脚本的输出,但是我如何将php脚本中定义的变量传递到shell脚本中以在其中使用(以供shell进一步处理)?例如,考虑一个php文件如何将$test的值传递给shell脚本#!/bin/shphpconfig.phpecho$test更新:建议的方法基于打印变量。我不想打印任何东西,因为php脚本还有其他应用程序(在其他php脚本中被inclu

php - Mac OS X 10.9 连接到的未知 SSL 协议(protocol)错误

我将我的macOS更新到OSX10.9。OSX10.9/Apache2.2.24/PHP5.4.17现在在尝试通过cURL连接到我们的远程服务器时收到错误(连接到...的未知SSL协议(protocol)错误)。DEFINE("SSL_CERTTYPE","PEM");DEFINE("SSL_KEYPASS","xxxxxxxxx");DEFINE("SSL_CERT",$_SERVER['DOCUMENT_ROOT']."/certs/mycert.pem");DEFINE("SSL_KEY",$_SERVER['DOCUMENT_ROOT']."/certs/mycert.key"