我能否从Perl pdl2 shell中检索命令的完整历史记录(类似于bash中的历史记录)?



我正在使用pdl2 shell,我如何列出我所有的命令历史记录?

您可以在$HOME/.perldl_hist中找到您的历史记录

这可能取决于是否安装了Term::ReadLine::Gnu(我默认安装了)。

如果你想在pdl中访问你的历史记录,那么只需使用向上箭头键来输入前面的命令,或者键入^R (control-r)然后键入你想要搜索的文本(重复按^R以获得更后面的匹配)。

$ pdl
perlDL shell v1.354
...blah blah blah...
pdl> print 1+1
2
pdl> print 2+2
4
pdl> quit
$ cat ~/.perldl_hist 
print 1+1
print 2+2
$ 

EDIT:要在 pdl中查找的历史记录,请执行以下操作:

$ pdl
pdl> print join "n", $PERLDL::TERM->GetHistory

$PERLDL::TERM->GetHistory返回当前历史记录的数组。它只是一个普通的数组,所以你可以对它做任何你喜欢的事情。例如,要查找最近涉及名为mypdl的进程的所有直方图操作,您可以这样做:

pdl> print join "n", grep { /histogram/ && /mypdl/ } $PERLDL::TERM->GetHistory

来自PDL文档(即pdldoc perldl):

History mechanism
  If you have the perl modules ReadLines and ReadKeys installed, then
  perldl supports a history and line-editing mechanism using editing keys
  similar to emacs. The last 500 commands are always stored in the file
  .perldl_hist in your home directory between sessions. Set
  $PERLDL::HISTFILESIZE to change the number of lines saved. The command
  "l [number]" shows you the last "number" commands you typed where
  "number" defaults to 20.

如果您安装了合适的readline,则l命令会列出您的历史记录。

最新更新