#!/usr/bin/perl -w # utter [-bBEFORE] [-aAFTER] [-sSEP] [-v] [--] STRING... - a kind of sane echo use strict; my $before = ""; my $after = "\n"; my $sep = ""; my $initial = ""; my $final = ""; while (defined($_ = shift)) { if (/\A-a/) { $after = $' || shift } elsif (/\A-b/) { $before = $' || shift } elsif (/\A-s/) { $sep = $' || shift } elsif (/\A-i/) { $initial= $' || shift } elsif (/\A-f/) { $final = $' || shift } elsif (/\A-[vq]/){ $before = "»"; $after = "«"; $sep = " "; $final = "\n"; } elsif (/\A-[0z]/){ $before = ""; $after = ""; $sep = "\0"; $final = "\0"; } elsif (/\A--\z/) { last } else { unshift @ARGV, $_; last; } } my $i = 0; print $initial; printf("%s%s%s%s", $i++ ? $sep : "", $before, $_, $after) for @ARGV; print $final;