Não há. Muito fácil escrever um com perl. Aqui está o script untrap
:
#!/usr/bin/perl
$SIG{INT} = "DEFAULT";
exec { $ARGV[0] } @ARGV or die "couldn't exec $ARGV[0]: $!";
Exemplo de uso:
#!/bin/bash
untrap bash -c '
sleep 3
echo aaa
' &
trap '' INT
wait $!
Se você remover o prefixo untrap
, Ctrl-C não eliminará o script.
Roteiro mais versátil:
#!/usr/bin/perl
use Getopt::Long;
GetOptions(
'help' => sub {
print "usage: $0 [--sig={INT|HUP|...}={IGNORE|DEFAULT}]... COMMAND [ARG]...\n";
exit 0;
},
'sig=s%' =>
sub {
my $action = $_[2];
my $signame = $_[1];
die "bad action $action" unless ($action eq "IGNORE" or $action eq "DEFAULT");
die "bad signame $signame" if ($signame eq "__DIE__" or $signame eq "__WARN__");
$SIG{$_[1]} = $action;
}) or exit 1;
exec { $ARGV[0] } @ARGV or die "couldn't exec $ARGV[0]: $!";