【问题标题】:Fixing this PHP syntax修复此 PHP 语法
【发布时间】:2021-01-14 03:23:37
【问题描述】:

我在尝试使其正常工作时遇到问题。

<?php
$output = shell_exec(sudo whereami -r | awk  '$1 == "\"region_name\":" { $1 = "";gsub(/ /,"");sub(/^"/,"");sub(/",$/,"");print}');
echo "<pre>$output</pre>";
?>

无论我做什么,我得到的只是一个语法错误。

【问题讨论】:

  • shell_exec 接受一个字符串
  • 我试过了,还是报错。
  • @robotron 由于您删除了上一个问题...您需要转义所有双引号,因为它们是 PHP 字符串的封装字符和反斜杠,因为它们是 PHP 中的转义字符。这也是一个倒退,因为这个版本没有引用 shell 命令。

标签: php linux shell-exec


【解决方案1】:

这个怎么样?您缺少转义某些字符。

<?php
$cmd = 'sudo whereami -r | awk  \'$1 == "\"region_name\":" { $1 = "";gsub(/ /,"");sub(/^"/,"");sub(/",$/,"");print}';
$output = shell_exec($cmd);
echo "<pre>$output</pre>";
?>

【讨论】:

  • 没有错误,但我注意到这个 \ 在 awk 阻止命令的其余部分正确执行之后
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-05
  • 2017-08-30
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多