有一个shell程序。 shell程序:
所有这些都发生在一个shell文件中。
我的问题是导出不会发生在Perl文件中。可能是什么问题?
答案 0 :(得分:2)
你真的不会给我们太多的东西,但下面的脚本符合问题中的标准。它产生答案6.(1)中的命令是echo
,它打印三个值。显然,(2)中的命令是export
行。 (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
确实有效。如果它在你的脚本中不起作用,那一定意味着你在滥用它。但是,由于您没有向我们展示您的代码,我们无法帮助您解决代码中的问题。这是一个可怜的工匠,他把自己的工具归咎于自己的缺点。声称数百万人每天成功使用的东西“不起作用”是一个标志。你很少有机会找到它破碎的方式 - 但机会很小,而且必须详细说明。
答案 1 :(得分:0)
如评论中所述,使用此信息量进行诊断有点困难,但如果您使perl脚本从标准输入而不是从环境中读取值,则不必导出任何内容。然后你的“shell程序”就是
command_from_step_1 | perl_script_from_step_3
中间有一个竖线字符。
答案 2 :(得分:0)
尝试使用shell的'-x'选项运行脚本,看看发生了什么。