我对PHP还是很陌生,我需要获取命令“ iocage list -h”的输出,iocage是freeBSD的管理工具。使用代码:
$file = shell_exec('/usr/local/bin/iocage list');
echo $file;
如果我这样做,它什么也不输出:
$file = shell_exec('/usr/local/bin/iocage list 2>&1');
echo $file;
然后输出
Usage: iocage [OPTIONS] COMMAND [ARGS]... Try "iocage --help" for help. Error: No such command "list".
这不正确,好像我运行命令“ / usr / local / bin / iocage list”一样,它按预期工作。我不明白为什么命令末尾有一个'2>&1',我在另一个问题的答案中看到了它。
有人知道如何进行这项工作吗?谢谢您的提前帮助。
答案 0 :(得分:0)
关于您对df %>%
mutate(
y = case_when(
x == last(x == "A") ~ "A",
x == first(x == "B") ~ "B")
)
#> # A tibble: 7 x 2
#> x y
#> <chr> <chr>
#> 1 <NA> <NA>
#> 2 A <NA>
#> 3 A <NA>
#> 4 <NA> <NA>
#> 5 <NA> <NA>
#> 6 B <NA>
#> 7 B <NA>
的问题,这是一个很好的解释:
In the shell, what does " 2>&1 " mean?
现在,关于为什么shell_exec无法正常工作,您必须确保Web用户具有适当的权限。 取自https://www.php.net/manual/en/function.shell-exec.php:
对于那些试图在unix类型的平台上使用shell_exec并且似乎无法使其正常工作的人,请快速提醒一下。 PHP以系统上的Web用户身份执行(对于Apache,通常为www),因此您需要确保Web用户对您在shell_exec命令中尝试使用的任何文件或目录具有权限。否则,它似乎什么也没做。
希望这可以帮助您解决问题。