不能执行“历史记录”:在gatherinformation.pl第7行没有这样的文件或目录

时间:2015-12-12 16:16:33

标签: perl shell

我正试图从perl脚本调用“历史记录”,但它一直说“不能执行”历史记录“:在gatherinformation.pl第7行没有这样的文件或目录。”脚本:

#!/usr/bin/perl

use strict;
use warnings;

open(my $fich ,">>/home/osboxes/Desktop/ConteudosServer/Plano de contingencia/history_report.txt");
`history`;

我在脚本中只尝试使用history,但它一直给我同样的错误。

我一直在使用HISTFILESIZE和HISTFILE变量来输出“%h /%d - %H:%M:%S”。 Heres是bashrc文件中的行:

export HISTTIMEFORMAT="%h/%d -- %H:%M:%S "

我尝试过这两个答案: Can't exec No such file or directory

perl script error: Can't exec "module": No such file or directory at ./prog line 2

我认为开始另一个问题只是为了问这个问题是否有用:有没有办法直接从文件history获取./bash_history的日期和时间?我不认为必须将shell命令调用到这么简单的任务中。

2 个答案:

答案 0 :(得分:1)

问题是history是一个 bash shell命令,而不是一个独立的程序

即便如此,我很惊讶你得到了那个特定的错误信息,因为反引号操作符启动一个新的shell进程并将该字符串作为命令传递给它,所以无论它是否是shell进程都应该工作。我猜测Perl使用的默认shell不是bash。您可以通过运行

来确认
perl -MConfig -E'say $Config{sh}'

但是我不希望你看到任何输出,因为新的shell进程没有历史记录,所以命令没有输出

答案 1 :(得分:0)

我认为perl很可能将“历史”视为一个独立的二进制文件;同样的原因which history不会产生任何东西 - 它是内置shell的一部分。