程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ShellScript 不运行 'cd',在 php 中调用 sh大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决S@R_197_11423@lScript 不运行 'cd',在 php 中调用 sh?

开发过程中遇到S@R_197_11423@lScript 不运行 'cd',在 php 中调用 sh的问题如何解决?下面主要结合日常开发的经验,给出你关于S@R_197_11423@lScript 不运行 'cd',在 php 中调用 sh的解决方法建议,希望对你解决S@R_197_11423@lScript 不运行 'cd',在 php 中调用 sh有所启发或帮助;

看看有没有人去过,我在s@R_197_11423@lscript中有这个简单的代码,我访问文件夹(/home/teste4toquew5824)然后确认我是否用密码进入目录,

#!/bin/bash
cd /home/teste4toquew5824 && pwd

我有一个 php 文件(位于 /var/www/HTML 中),它调用了这个 sh:

 $var= s@R_197_11423@l_exec('/usr/local/bin/API/teste.sh');
    echo "<br><br>";
    var_dump($var); 

当我收到 pwd 的返回时,它显示好像它仍然在 php 文件的目录中(/var/www/HTML),换句话说,它没有“接受”或执行 cd 命令。

1 - 我已经为 php 和 sh 申请了权限。

2 - 我已经确认目录 /home/teste4toquew5824 存在

3 - 我已经测试并在 sh 中放置了一个回声,只是为了确认 php 正在正确调用和执行 sh。

4 - 我已经在 sh 中添加了一行来复制文件,只是为了确保另一个命令也正在执行,并将文件复制到 /var/www/HTML

5 - 我尝试将顶部的 bash 更改为 #!/bin/sh -

有人有什么想法吗?非常感谢

解决方法

你需要知道当前工作目录是每个进程的一个属性。为此,cd 命令是 s@R_197_11423@l 内部的命令,s@R_197_11423@l 通过调用 chdir(2) 系统调用来执行该命令。

这意味着s@R_197_11423@l可以改变它的目录,然后fork几个进程,这将继承父级(s@R_197_11423@l)的工作目录,但是s@R_197_11423@l无法改变进程的目录那叫它。这就是你调用改变目录的脚本(一个s@R_197_11423@l进程),调用pwd的原因,表明目录实际上是你请求的目录,但你自己的目录仍然和以前一样,好像s@R_197_11423@l 忽略了你的命令。

在posix系统中没有系统调用来改变另一个进程的当前目录,而是由进程自己完成。

混淆是因cd 命令看起来像@H_616_47@在不同程序中实现的其他命令,但 cd 命令是一个内部命令(您在任何地方都看不到 /bin/cd 命令)

大佬总结

以上是大佬教程为你收集整理的ShellScript 不运行 'cd',在 php 中调用 sh全部内容,希望文章能够帮你解决ShellScript 不运行 'cd',在 php 中调用 sh所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。