Ana*_*and 1 linux bash shell perl
我正在尝试source从Perl脚本(script.pl)编写脚本.
system ("source /some/generic/script");
Run Code Online (Sandbox Code Playgroud)
请注意,此通用脚本可以是shell,python或任何其他脚本.此外,我无法将此通用脚本中的逻辑复制到我的Perl脚本中.我试着替换system`` exec,和qx//.每次我收到以下错误:
不能执行"source":script.pl第18行没有这样的文件或目录.
我在互联网上遇到了很多论坛,讨论了这个问题的各种原因.但他们都没有提供解决方案.有没有办法source从Perl脚本运行/执行命令?
在bash等中,source是一个内置的,意味着读取此文件,并在本地解释它 (有点像a #include).
在这种情况下没有意义 - 您需要source从命令中删除并#!在shell脚本的开头有一个shebang()行告诉系统使用哪个shell来执行该脚本,或者您需要明确告诉system哪个要使用的shell,例如
system "/bin/sh", "/some/generic/script";
Run Code Online (Sandbox Code Playgroud)
[没有评论它是否适合system在这种情况下使用].
你不能。source是一个 shell 函数,它将该脚本的内容“导入”到您当前的环境中。它不是可执行文件。
您可以通过滚动自己的方式来复制它的一些功能 - 运行或解析您“采购”的任何内容并捕获结果:
print `. file_to_source; echo $somevar`;
Run Code Online (Sandbox Code Playgroud)
或类似的。
| 归档时间: |
|
| 查看次数: |
3011 次 |
| 最近记录: |