当我尝试通过perl执行shell脚本时,它为我提供了结果,但所有这些都在一行中.怎么纠正呢?

 闷气敦厚 发布于 2023-02-10 13:24

当我尝试通过perl-CGI执行shell脚本时,它提供的结果却是一行.但是当我运行shell脚本时,它会以正确的格式显示结果.请指导我如何使它正确.

下面是perl代码

#!/usr/bin/perl
use CGI qw(:standard);

exec("sh /tmp/att.sh -t v2  --help");
print end_html

请帮我解决一下.

1 个回答
  • 在您之前添加exec:

    print "Content-type: text/plain\n\n";
    

    您可以安全地删除print end_html;它,因为它永远不会被执行.

    事实上,任何事情exec都不会被执行.如果你想在shell调用之后执行更多Perl system或者其他方法(请参阅此链接).

    如果你想在HTML中嵌入你的输出,你必须得到更复杂一点,并使用反引号或打开管道,因为你想要在打印之前捕获输出和HTML转义.

    use CGI qw/escapeHTML/;
    
    print "Content-type: text/html\n\n";
    
    printf "<pre>%s</pre>\n", escapeHTML(`sh /tmp/att.sh -t v2  --help`);
    

    编辑(根据@ysth的要求):是什么 <pre>

    每个W3C文档pre

    PRE元素告诉可视用户代理所包含的文本是"预先格式化"的.处理预格式化文本时,可视用户代理:

    可以保持白色空间完整.

    可以使用固定间距字体渲染文本.

    可能会禁用自动换行.

    不得禁用双向处理.

    2023-02-10 13:26 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有