- 已关闭**,此问题需要details or clarity。目前不接受答复。
- 想改善这个问题吗?* * 通过editing this post添加详细信息并澄清问题。
2天前关闭。
Improve this question
在bash中运行命令时,如何在Perl中显示SECONDS
等基本变量?
perl -e 'system(bash -c echo $SECONDS)'
它什么都不显示。我没有访问bash变量的权限,但我正在bash中运行一个Perl命令。
2天前关闭。
Improve this question
在bash中运行命令时,如何在Perl中显示SECONDS
等基本变量?
perl -e 'system(bash -c echo $SECONDS)'
它什么都不显示。我没有访问bash变量的权限,但我正在bash中运行一个Perl命令。
1条答案
按热度按时间oogrdqng1#
需要导出一个bash变量,以便在同一个bash进程中执行的Perl程序可以看到它。然后可以在Perl中将其作为环境变量使用,或者在子shell中使用
请注意,
$
字符需要转义,否则Perl程序将把$SECONDS
视为自己的变量。并将尝试在它将参数传递给system
之前对它启动的shell进行评估(无效)。有人提出了如何只将其传递给这一个程序的问题。然后将该值作为命令行参数传递给Perl程序?查看如何将shell变量传递给Perl单行程序,例如here。
Cyrus
在注解中提供的另一种方法是,使该值仅对被调用的程序可用。此外,现在一旦引入了一个新变量,就可以为Perl程序更合适地命名它,因为它不再像bash的
SECONDS
那样工作。