我正在尝试使用大小写控制语句将参数从URL( PHP 脚本)传递给 Bash 。如果Bash脚本本身是从 Linux 计算机运行的,则Bash脚本本身可以正常工作,但是通过URL调用会返回空白页面。
bash脚本
case $1 in
allBG)
echo "Prilagane na status 1 - All BG";
cp /root/copyjob/status/xml/status1_allBG/tvip_provision.xml >/var/www/html/prov.mac/$2/tvip_provision.xml;
;;
allEU)
echo "Prilagane na status 2 - All EU za"
cp /root/copyjob/status/xml/status2_allEU/tvip_provision.xml >/var/www/html/prov.mac/$2/tvip_provision.xml
;;
eurotv)
echo "Prilagane na status 3 - eurotv";
cp /root/copyjob/status/xml/status3_eurotv/tvip_provison.xml >/var/www/html/prov.mac/$2/tvip_provision.xml;
;;
gotv)
echo "Prilagane na status 4 - gotv";
cp /root/copyjob/status/xml/status4_gotv/tvip_provision.xml >/var/www/html/prov.mac/$2/tvip_provision.xml;
;;
bixi)
echo "Prilagane na status 5 - bixi";
cp /root/copyjob/status/xml/status5_allbg/tvip_provision.xml >/var/www/html/prov.mac/$2/tvip_provision.xml;
esac
php脚本
$status = $_GET['status'];
$mac = $_GET['mac'];
echo exec('/root/copyjob/status/status.sh $status $mac');
答案 0 :(得分:0)
如果要解释PHP或结束字符串并将变量连接到字符串,则需要使用双引号。
所以要么:
echo exec("/root/copyjob/status/status.sh $status $mac");
或:
echo exec('/root/copyjob/status/status.sh ' . $status . ' ' . $mac);
编辑:抱歉,错过了回声。如果要从中输出内容,则必须使用exec的2nd和3rd参数:
<?php
$status = $_GET['status'];
$mac = $_GET['mac'];
$output = array();
$return_var = null;
exec("/root/copyjob/status/status.sh $status $mac", $output, $return_var);
var_dump($output);
var_dump($return_var);