php执行sh文件 没有输出的原因 及解决方法

当PHP执行sh文件时出现无输出的情况,可能是因为执行脚本的用户没有sudo权限。通过添加2>&1将错误输出重定向到变量,发现错误提示为“没有权限”。解决办法是取消sudo,确保命令能被普通用户执行。此外,文章还介绍了标准输入、输出和错误输出的重定向原理。
摘要由CSDN通过智能技术生成

没有输出 而在linux中 是有输出的
此时加入管道命令
2>&1,命令就会输出shell执行时的错误到$output变量, 输出该变量即可分析

此时输出

翻译一下:没有权限
登录linux的账号是有权限使用sudo的
而执行脚本的用户是没有sudo 权限的
而此命令 可以被一般用户执行
把sudo 取消 即可解决此问题

 

扩展延伸:
     默认地,标准的输出为终端(terminal),但是也可以重定向到文件,管道或后引号(backquotes `)。
     默认地,标准的错误输出到终端,但是也可以重定向到文件。
     标准的输入,输出和错误输出分别表示为STDIN,STDOUT,STDERR,也可以用0,1,2来表示。
 

    command 2>errfile       command错误重定向到file
    command 2>&1 | ...      将错误重定向到标准输出,错误或者标准输出
    command 3>&2 2>&1 1>&3  标准输出和错误输出的交换

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值