Скрипт Bash с командой Sed работает на терминале, но не с помощью PHP-скрипта

Когда я пишу команду ./test.sh testvalue в терминале
он пишет «testvalue» в сценарии с помощью sed.
Но когда он работает с PHP shell_exec('./test.sh testvalue')
скрипт php пишет привет на странице (потому что в bash я использовал echo)
но скрипт bash не записывает значение testvalue в данные test.txt.
Зачем?
Я использовал chmod a + x + r для php и bash?
Пожалуйста, помогите мне!
Спасибо!

Мой 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'

1

Решение

Я предлагаю вам проверить:

  1. в сценарии PHP вы должны изменить строку в двойные кавычки (чтобы она могла интерпретировать переменные внутри)
  2. определять $test переменная (она не определена)
  3. на PHP-сценарий, который вы пытаетесь выполнить test_sed.sh но в описании вы написали test.sh, Проверьте, что вы имеете в виду
  4. и, наконец, если у вас есть проблемы с выполнением сценария оболочки из CLI, то вам следует проверить шебанг. Если у вас есть эта проблема, вы должны попробовать #!/bin/bash

Я надеюсь, что это помогает

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector