【发布时间】:2022-01-28 10:48:07
【问题描述】:
我想创建一个 stop.sh 文件来停止屏幕会话。
$test = "screen_name";
这是命令:
kill -15 $(screen -ls | grep '[0-9]*\.$test' | sed -E 's/\s+([0-9]+)\..*/\1/'`)
我想像这样用 php ssh2_exec 创建这个文件:
ssh2_exec($connection, "echo 'kill -15 $(screen -ls | grep '[0-9]*\.$test' | sed -E 's/\s+([0-9]+)\..*/\1/')' > /home/test/stop.sh");
但我明白了:
sh: 1: Syntax error: "(" unexpected
我试过了:
kill -15 $(screen -ls | grep \'[0-9]*\.$test\' | sed -E \'s/\s+([0-9]+)\..*/\1/\')
但这不起作用。
【问题讨论】:
-
你错过了
( -
在双引号内 PHP 将尝试解析以
$开头的代码,所以在你有$(screen -ls.....的那个命令中,我相信 PHP 会在那个括号上犹豫,因为没有变量会以括号开头.您应该尝试转义$
标签: php linux screen ssh2-exec