1
0
Fork 0
mirror of https://github.com/notwa/rc synced 2024-10-31 16:54:35 -07:00
rc/sh/shelly

23 lines
656 B
Perl
Executable file

#!/usr/bin/env perl
### @ shelly
### (perl 5) invoke the first shell found from a list of shells
### as an interactive, non-login shell. arguments are ignored.
use strict;
use Env qw(@PATH);
use File::Spec;
# arbitrary ordering, feel free to change:
my @shells = <zsh osh fish ion bash ash busybox ksh tcsh csh rc dash>;
for my $s (@shells) {
for my $p (@PATH) {
my $fp = File::Spec->join($p, $s);
my @argv = $s eq "busybox" ? ("sh", "-i") : ($s, "-i");
exec {$fp} @argv if -f $fp and -e "$fp";
#print STDERR "fail: $fp\n";
}
}
print STDERR "$0: gave up; invoking `sh` without arguments...\n";
exec {"sh"} "sh";