我想在php exec函数中用两个变量“hour”和“minutes”交换“30”和“16”
$hour = 30;
$mins = 16;
exec('echo "30 16 * * * sudo /home/pi/raspberry-remote/./send 11010 1 1" | crontab -');
并改变它:
exec('echo "$hour $mins * * * sudo /home/pi/raspberry-remote/./send 11010 1 1" | crontab -');
我怎样才能做到这一点?谢谢
答案 0 :(得分:3)
未填充单引号字符串中的变量。尝试
exec('echo "'.$hour.' '.$mins.' * * * sudo /home/pi/raspberry-remote/./send 11010 1 1" | crontab -');
或
exec("echo \"$hour $mins * * * sudo /home/pi/raspberry-remote/./send 11010 1 1\" | crontab -");
答案 1 :(得分:2)
变量不会在单引号字符串中展开,只在双引号字符串中。所以切换你的报价。
exec("echo '$hour $mins * * * sudo /home/pi/raspberry-remote/./send 11010 1 1' | crontab -");
答案 2 :(得分:1)
您可以使用concat string
执行此操作exec('echo "'.$hour.' ' .$mins.' * * * sudo /home/pi/raspberry-remote/./send 11010 1 1" | crontab -');exec('echo "$hour $mins * * * sudo /home/pi/raspberry-remote/./send 11010 1 1" | crontab -');
答案 3 :(得分:1)
我建议您 sprintf 。这不会失去可读性。
$format = 'echo "%d %d * * * sudo /home/pi/raspberry-remote/./send 11010 1 1" | crontab -';
exec(sprintf($format, $hour, $mins));