使用此代码:
#!/usr/bin/env perl
use warnings;
use strict;
package Testsh;
use base qw(Term::Shell);
my @actions = qw/ a b c d e f g h /;
sub comp_cd {
my ( $self, $action ) = @_;
$self->completions( $action, \@actions);
}
sub run_cd {
my ( $self, $action ) = @_;
$self->prompt( "$action~> ");
}
package main;
my $shell = Testsh->new;
$shell->cmdloop;
当我启动shell并按两次 tab 时,我有三个选项:cd,退出帮助。
如果我执行其中一个操作,则提示符将更改为操作名称,但我不再能够使用选项卡完成功能。这是为什么?
答案 0 :(得分:3)
如The Term:Shell API中所述,您可以指定prompt
的完成作为第三个参数:
$self->prompt( "$action~> ", '', [ glob '*' ]);