首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PHP执行Shell脚本Bash脚本文件并返回命令输出详情

PHP执行shell脚本或者Bash脚本文件实例。system和exec函数可能被配置文件禁用,可以通过修改php配置文件删除被禁用函数。1.通过system函数执行使用实例:运行结果:2.批量执行Shell命令为了方便管理,可以所需执行命令写入至sh文件,然后通过system执行即可。sh文件以#!.../bin/bash开头,指示命令解释器,需要执行命令每行一个,以;结尾,内容结尾可不带换行,否则status获取是换行执行结果(即空),if判断为空值则会输出命令执行失败,但实际上结尾换行符以上命令是实际执行成功.../bin/bashdig www.afengblog.com;dig afengblog.com;dig cdn.afengblog.com;可以shell 值改为:bash dig.shdig.sh...改为以上sh文件相对或绝对路径如下:<?

2.2K20
您找到你想要的搜索结果了吗?
是的
没有找到

详解bash脚本调试机制

以调试模式运行脚本 通过bash -x 方式可以在调试模式下运行整个脚本, bash会在在运行前打印出了每一行命令, 而且每行前面用+号表明命令嵌套层数. > bash -x debug.sh...如果脚本比较复杂, 我们可以通过使用环境变量PS4配合调试用内置变量用于输出更加详细信息: > export PS4='+${BASH_SOURCE}:${LINENO}:${FUNCNAME[0]...() { func1 } func3 () { func2 } func3 caller 0 # 必须在函数调用 否则无输出 exit 0 运行该脚本可以得到以下输出: Level0...: var: unbound variable 为防止误操作覆盖文件数据, 设置禁止重定向到已经存在文件: > set -C # 等价于 set -o noclobber > touch test...* > ll * -rw-rw-r-- 1 remilia remilia 0 Mar 1 20:09 '*' 到此这篇关于详解bash脚本调试机制文章就介绍到这了,更多相关bash 脚本调试

1.3K31

处理Apache日志Bash脚本

所以,我就决定自己写一个Bash脚本,统计服务器日志,顺便温习一下脚本知识。 事实证明,这件事比我预想难。虽然最终脚本只有20多行,但花了我整整一天,反复查看手册,确认用法和合适参数。...下面就是我日志分析脚本,虽然它还不是通用,但是我相信里面用到命令,足以满足一般日志分析需求,同时也是很好学习Bash实例。如果下面的每一个命令你都知道,我觉得可以堪称熟练使用Bash了。...二是"功能强",Bash脚本设计目的,就是为了处理输入和输出,尤其是单行文本,所以非常合适处理日志文件,各种现成参数加上管道机制,威力无穷。.../bin/bash   if ls ./*.result &> /dev/null #判断当前目录是否有后缀名为result文件存在   then     rm *.result #如果有的话...编写时候,我假定这个脚本和log.awk脚本与日志文件在同一个目录,而且这两个脚本都具有执行权限。 年度排名处理与此类似,就不再赘述了。

1.2K50

基于Bash Shell一个审计脚本

三、日志搜索 日志搜索,其实就是个文件名搜索和ip地址搜索功能。 用户根据扫描出来webshell后门名称,搜索名字,然后搜索信息进行去重、统计进行显示。 ?...主要是通过根据用户指定文件名或IP地址,将用户内容保存成变量,然后开始筛选,排除404、400响应码以及Binary关键字等不关注信息,然后针对性进行输出和统计,让检索内容显示简洁些,并将输出内容进行保存...用户输入序号1,则进入到case一个逻辑上,输出echo “case 1”后,让它跳转到定义好gn1函数上,并让gn1函数输出“我是功能1”后,返回到menu函数,也就是主界面。 ? ?...五、题外话 在kali,可以常用工具集中起来,配合bash shellfunction函数,来实现自动化执行,就不需要背命令了,无论什么工具,输个IP地址或者域名就可以直接使用了,只要你提前在function...利用nmap扫描服务信息,判断开放服务,根据服务信息,自动调用要破解模块,实现自动识别,自动破解,输出结果过程,其实就是个调用,调用,再调用,没什么技术性,关键是在于一个字! 懒!

1.1K30

编写快速安全Bash脚本建议

我们会包含: 一些bash基础知识(“你怎么写一个for循环”) 杂项事宜(“总是引用你bash变量”) bash脚本安全提示(“总是使用set -u”) 如果你编写shell脚本,并且你没有阅读这篇文章其他任何内容...使用它来使您shell脚本更好! 我们会像讨论编程语言一样讨论bash,因为,怎么说呢,它就是。 这篇文章目标不是bash编程详解。我不会在bash做复杂编程,也真的不计划学习如何去做。...有个很酷事情是你可以遍历另一个命令输出。seq 1 10 数字从1到10(每行一个)打印,这个for循环只是提取该输出并遍历它。我就经常用这种方法。...您也可以使用反引号或$()来插入命令输出。 OUTPUT=`command` # or OUTPUT=$(command) if 语句 在 bash If 语句是相当让人讨厌去记它。...my_function () { echo "This is a function"; } my_function #调用函数 总是引用你变量 另一个 bash 技巧:绝不使用一个没有引用变量。

1.8K80

bash运行脚本几种方式 转

bash shell 脚本执行方法有多种,本文作一个总结,供大家学习参考。 假设我们编写好shell脚本文件名为hello.sh,文件位置在/data/shell目录并已有执行权限。...hello.sh 或 cd /data/shell sh hello.sh 注意,若是以方法三方式来执行,那么,可以不必事先设定shell执行权限,甚至都不用写shell文件第一行(指定bash...因为方法三是hello.sh作为参数传给sh(bash)命令来执行。这时不是hello.sh自己来执行,而是被人家调用执行,所以不要执行权限。那么不用指定bash路径自然也好理解了啊,呵呵……。...脚本时都是在当前shell(称为父shell)开启一个子shell环境,此shell脚本就在这个子shell环境执行。...shell脚本执行完后子shell环境随即关闭,然后又回到父shell。而方法四则是在当前shell执行。 假设shell脚本文件为hello.sh 放在/root目录下。

2.2K10

bash shell:脚本修改profile文件更新LD_LIBRARY_PATH示例

sed编辑器被称作流编辑器(stream editor),跟普通交互式文件编辑器相反。在交互式编辑器(比如vim),你可以用键盘命令来交互式地插入、删除或替换数据文本。...流编辑器则会在编辑器处理数据之前基于预先提供一组规则来编辑数据流。 于是我们可以利用sed编辑器在安装脚本实现对profile文件修改。...下面我们以一个实际应用例子来说明: 我已经有一个叫CASSDK项目,这个项目没有可执行文件,只是一组动态库文件提供别的应用程序调用(比如java),需要为它写一个安装脚本脚本作用是将在文件复制到指定安装目录...另外还要写一个卸载脚本,在删除安装目录后,同时profileLD_LIBRARY_PATH变量也同步修改。...(UNINSTALL.sh)片段,用sed修改profile文件,删除安装脚本添加export语句 # 定义安装目录位置变量 cassdk_path=/home/gdface/cassdk # cassdk_path

2.9K20

bash脚本如何检查一个命令是否存在

问: 如何验证程序是否存在,以一种要么返回错误并退出,要么继续执行脚本方式? 这看起来应该很容易,但它一直困扰着我。...它是一个外部进程,相对而言 hash、type 或 command 这样内置程序执行效率更高,你还可以依靠内置程序来实际执行所需操作,而且外部命令效果很容易因系统而异。...许多操作系统会让 which 做一些自定义和邪恶事情,比如更改输出,甚至 hook 到包管理器。...---- 参考: stackoverflow question 592620 man bash 相关阅读: 为什么在可执行文件脚本名称之前需要..../(点-斜杠),以便在bash运行它 在shell编程$(cmd) 和 `cmd` 之间有什么区别

19930

Bash shell脚本如何检查一个目录是否存在

问: 在 Bash shell 脚本什么命令检查某个目录是否存在?...例如,运行以下代码: ln -s "$ACTUAL_DIR" "$SYMLINK" if [ -d "$SYMLINK" ]; then rmdir "$SYMLINK" fi 产生错误消息...在 Unix 早期设计,许多系统资源都被抽象为文件,以实现统一和一致接口处理,这样程序员可以使用相同系统调用来操作不同资源,如普通文件、目录、设备等。...这种哲学影响了许多 Unix-like 操作系统,包括 Linux。 这里顺便整理一下 Bash 文件各种测试: -a file -- 如果文件存在则为真。...参考文档: stackoverflow question 59838 https://www.gnu.org/software/bash/manual/bash.html#Bash-Conditional-Expressions

19210

编写可靠 bash 脚本一些技巧

作者:astarsun,腾讯搜索工程师 写过很多 bash 脚本的人都知道,bash 坑不是一般多。其实 bash 本身并不是一个很严谨语言,但是很多时候也不得不用。...这个对于 debug 脚本输出 Log 时非常有用。正式运行脚本也可以不加。 -e :遇到一个命令失败(返回码非零)时,立即退出。...bash 跟其它脚本语言最大不同点之一,应该就是遇到异常时继续运行下一条命令。这在很多时候会遇到意想不到问题。加上 -e ,会让 bash 在遇到一个命令失败时,立即退出。.../bash/manual/html_node/Shell-Parameter-Expansion.html -o pipefail :只要管道一个子命令失败,整个管道命令就失败。...pipefail 与-e 结合使用的话,就可以做到管道一个子命令失败,就退出脚本。 1. 防止重叠运行 在一些场景,我们通常不希望一个脚本有多个实例在同时运行。

1.2K21

如何从Bash脚本本身获得其所在目录

问: 如何从Bash脚本本身获得其所在目录? 我想使用Bash脚本作为另一个应用程序启动器。我想把工作目录改为Bash脚本所在目录,以便我可以对该目录下文件进行操作,像这样: $ ....但是在以相对路径方式去执行脚本时,获取目录信息是相对路径,不能满足其他需要获取绝对路径场景。 如果要获取绝对路径,可以使用如下方法: #!...$script_dir 其中第3行代码,无论从何处调用它,都将为你提供脚本完整目录路径。...为什么我不能在脚本中使用"cd"来更改目录 为什么在可执行文件脚本名称之前需要..../(点-斜杠),以便在bash运行它 shell脚本对编码和行尾符敏感吗

23320

Linux中高效编写Bash脚本10个技巧

本文中,我们分享 10 个写出高效可靠 bash 脚本实用技巧,它们包括: 1、 脚本多写注释 这是不仅可应用于 shell 脚本程序,也可用在其他所有类型编程一种推荐做法。...在脚本作注释能帮你或别人翻阅你脚本时了解脚本不同部分所做工作。 对于刚入门的人来说,注释用 # 号来定义。...因此用下面行方式去通知 bash 当它尝试去用一个未声明变量时就退出脚本执行: # 若有用未设置变量即让脚本退出执行 set -o nounset # 或 set -u 4、 使用双引号来引用变量...当引用时(使用一个变量值)用双引号有助于防止由于空格导致单词分割开和由于识别和扩展了通配符而导致不必要匹配。...command 来做代换 命令代换 是用这个命令输出结果取代命令本身。

1.6K50

Linux 中高效编写 Bash 脚本 10 个技巧

-- Aaron Kili 本文导航 -1、 脚本多写注释08% -2、 当运行失败时使脚本退出15% -3、 当 Bash 用未声明变量时使脚本退出21% -4、 使用双引号来引用变量26% -5、...本文中,我们分享 10 个写出高效可靠 bash 脚本实用技巧,它们包括: 1、 脚本多写注释 这是不仅可应用于 shell 脚本程序,也可用在其他所有类型编程一种推荐做法。...在脚本作注释能帮你或别人翻阅你脚本时了解脚本不同部分所做工作。 对于刚入门的人来说,注释用#号来定义。...因此用下面行方式去通知 bash 当它尝试去用一个未声明变量时就退出脚本执行: # 若有用未设置变量即让脚本退出执行 set -o nounset # 或 set -u 4、 使用双引号来引用变量...当引用时(使用一个变量值)用双引号有助于防止由于空格导致单词分割开和由于识别和扩展了通配符而导致不必要匹配。

1.7K30

如何在Linux 系统上比较Bash脚本字符串?

在本教程,我们向您展示如何在Linux 系统上比较Bash 脚本字符串,我们将在一个简单 if/else Bash 脚本上下文中展示这一点,这样您就可以看到在开发脚本时测试这种情况是如何工作...在本教程,您将学习: 如何在 Bash 中比较字符串 比较字符串 if/else Bash 脚本示例 Bash 脚本:字符串比较示例 例1 在 Bash 脚本,您通常会将一个或两个字符串存储为变量...在此示例,我们使用=运算符和if语句来确定两个字符串是否彼此相等。该if语句继续其第一个子句或else原因,具体取决于字符串是否相等。 #!...例3 我们可以与字符串一起使用另一个运算符是-z,它允许我们测试字符串长度是否为 0。 #!...总结 在本教程,我们了解了如何在 Bash 脚本中比较字符串,尤其是在 Bash 脚本上下文中if/else。

3.8K00
领券