Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 外壳导出不工作_Perl_Shell_Unix - Fatal编程技术网

Perl 外壳导出不工作

Perl 外壳导出不工作,perl,shell,unix,Perl,Shell,Unix,有一个shell程序。shell程序: 包含一个命令(另一个shell程序),该命令运行并打印三个值 然后导出这三个值 最后执行一个Perl文件(使用导出的值) 所有这些都发生在shell文件中 我的问题是Perl文件中没有导出。可能是什么问题?如评论中所述,使用如此多的信息进行诊断有点困难,但如果让perl脚本从标准输入而不是从环境中读取值,则不必导出任何内容。那么你的“外壳程序”就是 command_from_step_1 | perl_script_from_step_3 中间有一个管道

有一个shell程序。shell程序:

  • 包含一个命令(另一个shell程序),该命令运行并打印三个值
  • 然后导出这三个值
  • 最后执行一个Perl文件(使用导出的值)
  • 所有这些都发生在shell文件中


    我的问题是Perl文件中没有导出。可能是什么问题?

    如评论中所述,使用如此多的信息进行诊断有点困难,但如果让perl脚本从标准输入而不是从环境中读取值,则不必导出任何内容。那么你的“外壳程序”就是

    command_from_step_1 | perl_script_from_step_3
    

    中间有一个管道角色。

    您真的没有给我们太多的东西可以继续,但是下面的脚本符合问题中的标准。它给出了答案6。(1)中的命令是
    echo
    ,它打印三个值。(2)中的命令显然是导出行。(3)中的命令是
    perl
    命令,它在环境变量a、b和c中添加值,然后添加一个换行符

     set -- $(echo a=1 b=2 c=3)
     export $1 $2 $3
     perl -e 'print $ENV{a} + $ENV{b} + $ENV{c}, "\n"'
    
    它有无数种可能的变化;我不认为这是解决你问题的好办法。但它符合规定的标准。不过,你最好表现出自己解决问题的努力,并寻求帮助改善问题


    此外,如果运行脚本,您将看到,
    export
    确实有效。如果它在你的脚本中不起作用,那一定意味着你误用了它。但是,由于您没有向我们显示代码,我们无法帮助您解决代码中的问题。一个拙劣的工匠把自己的缺点归咎于他的工具。声称数百万人每天成功使用的东西“不起作用”,这是一个提罗的标志。有一个很小的机会,你已经找到了一种方法,它是打破-但机会是微乎其微的,必须详细举例说明。

    尝试运行脚本与shell的'-x'选项,看看发生了什么。

    你必须给我们更多的继续下去。你至少可以发布shell脚本吗?可能还有perl脚本?这个qwuestion应该得到尽可能短的答案:任何东西。说真的,你认为我们是魔术师吗?顺便说一句,我们中的一些人确实并且可以告诉你,你的概念可能不起作用。我们可以用脚本来说明这个问题吗?使用我的水晶球,我怀疑rathika的错误是认为可以在perl脚本中使用$a而不是$ENV{a}。