gpt4 book ai didi

php - bash脚本中的转义字符

转载 作者:太空狗 更新时间:2023-10-29 12:39:15 27 4
gpt4 key购买 nike

我可以用这个命令终止一个分离的屏幕 session :

sudo kill $(screen -ls | awk '/ScreenName/ { print $1 }' | cut -f 1 -d '.')

我正在尝试将此实现到一个简单的 PHP 页面:

<?php
if ($_GET['run']) {
$cmd =shell_exec("screen -ls | awk '/ScreenName/ { print $1 }' | cut -f 1 -d '.'");
system('sudo kill $cmd');
?>
<a href="?run=true">Kill The Screen</a>

但是,PHP 不起作用。我认为这是因为我无法正确实现 $cmd。因为,当我尝试在终端中将命令分配给 $cmd 并执行它时,它不起作用。简而言之,这会发生:

~$ cmd="screen -ls | awk '/ScreenName/ { print $1 }' | cut -f 1 -d '.'"
~$ echo $cmd
screen -ls | awk '/ScreenName/ { print $1}' | cut -f 1 -d '.'
~$ $cmd
No Sockets found in /run/screen/S-ubuntu

~$ screen -ls | awk '/ScreenName/ { print $1}' | cut -f 1 -d '.'
28578

它是 \ 转义字符吗?可能是什么问题呢?是apache用户跑屏吗?

最佳答案

使用两个反斜杠。

在 PHP 中,\\ 被更改为 \

<?php
if ($_GET['run']) {
$cmd =shell_exec("screen -ls | awk '/ScreenName/ { print \\$1 }' | cut -f 1 -d '.'");
system('sudo kill $cmd');
?>
<a href="?run=true">Kill The Screen</a>

关于php - bash脚本中的转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54501853/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com