gpt4 book ai didi

PHP exec 命令不适用于包含变量的终端命令

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:58:03 25 4
gpt4 key购买 nike

我正在使用以下 php 代码。

$i = "1TEN";
$val=exec('cat '$i'.dssp -n | grep " ACC " | grep "[0-9]\+" -o | head -n 1');
echo $val;

它不会给出任何错误或任何输出。但是,以下代码运行良好:

$val=exec('cat 1TEN.dssp -n | grep " ACC " | grep "[0-9]\+" -o | head -n 1');
echo $val;

有人能帮忙吗?

同样,

$line=exec("tail $i.dssp -n $diff | awk -F" " -v var=$pos '{if ($2==var) print FNR}");

最佳答案

你收到这个错误是因为你以错误的方式在字符串中插入变量——你应该使用双引号 " 来指定你的字符串并转义 "带有 \ 的文本,这样它就不会被解释为字符串的结尾:

$val = exec("cat {$i}.dssp -n | grep \" ACC \" | grep \"[0-9]\+\" -o | head -n 1");

使用双引号 " 来指定您的字符串并将文本中的 " 替换为单引号' :

$val = exec("cat {$i}.dssp -n | grep ' ACC ' | grep '[0-9]\+' -o | head -n 1"); 

如果你想使用单引号 ' 你可以连接你的字符串,如下所示:

$val = exec('cat ' . $i . ' .dssp -n | grep " ACC " | grep "[0-9]\+" -o | head -n 1');

关于PHP exec 命令不适用于包含变量的终端命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23727890/

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