我正试图从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命令调用到这么简单的任务中。
答案 0 :(得分:1)
问题是history
是一个 bash shell命令,而不是一个独立的程序
即便如此,我很惊讶你得到了那个特定的错误信息,因为反引号操作符启动一个新的shell进程并将该字符串作为命令传递给它,所以无论它是否是shell进程都应该工作。我猜测Perl使用的默认shell不是bash。您可以通过运行
来确认perl -MConfig -E'say $Config{sh}'
但是我不希望你看到任何输出,因为新的shell进程没有历史记录,所以命令没有输出
答案 1 :(得分:0)
我认为perl很可能将“历史”视为一个独立的二进制文件;同样的原因which history
不会产生任何东西 - 它是内置shell的一部分。