【问题标题】:Bash Script with sed Command is working on terminal but not with a php script带有 sed 命令的 Bash 脚本正在终端上运行,但不适用于 php 脚本
【发布时间】:2018-12-19 06:26:58
【问题描述】:

当我在终端中编写命令./test.sh testvalue 时 它正在使用 sed 在脚本中编写“testvalue”。 但是当它使用 php shell_exec('./test.sh testvalue') 运行时 php脚本在页面上写hello(因为在bash中,我使用了echo) 但是 bash 脚本没有在 test.txt 数据中写入 testvalue。 为什么? 我在 php 和 bash 中使用了 chmod a+x+r? 请帮我! 谢谢!

我的 PHP:

<?php
    session_start();
    $out = shell_exec('./test_sed.sh $test');
    echo "$out";

?>

我的狂欢:

#!/bin
new_pw=$1
sudo sed -i '/^wpa_passphrase/d'  test.txt
sudo sed -i '$awpa_passphrase='$new_pw test.txt
echo 'hello'

【问题讨论】:

  • 对不起$test,我当然在使用test,但它也不起作用!
  • 您是否尝试为文件设置显式路径?
  • . 对您的 PHP 脚本意味着什么?指定脚本的完整路径。
  • 是的,.是否可以运行 bash 脚本
  • 检查 php 是否在不同的路径中执行...在您的网络服务器文档根 e 中可能有一个 test.txt。 g.

标签: php bash


【解决方案1】:

我建议你检查一下:

  1. 在 PHP 脚本中,您应该将字符串更改为双引号(这样它就可以解释里面的变量)
  2. 定义$test变量(未定义)
  3. 在您尝试执行的 PHP 脚本上test_sed.sh,但在您写的描述上test.sh。检查是否是您的意思
  4. 最后,如果您在从 CLI 执行 shell 脚本时也遇到问题,那么您应该检查 shebang。如果你有这个问题,你应该试试#!/bin/bash

希望对你有帮助

【讨论】:

  • 是的,没错,但我的脚本中还有一个变量。我用过#! /bin/bash。它不起作用?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-07
  • 2014-01-18
  • 2020-09-19
  • 2012-02-08
  • 2013-11-27
相关资源
最近更新 更多