Re: Show us your /etc/profile

2015-08-28 Thread T B
On Fri, Aug 28, 2015 at 1:20 AM, Alexander Hall  wrote:

>
> I'm pretty sure this messes up $? at the prompt. Try:
>
> false
> echo $?
>
> You could circumvent this by saving $? at the beginning of the function
> and returning it at the end.
>
>
Happy to report that this is not the case.  That would be pretty annoying,
though.



Re: Show us your /etc/profile

2015-08-27 Thread T B
Resurrecting this not-too-old thread.  You might find this one useful if
you run CARP firewalls which gives you a dynamic prompt telling you the
master/backup/other status.

function fwStatus {
IFCONFIG=`ifconfig -a | grep carp:`
NUMCARPS=`echo "$IFCONFIG" | wc -l`
BACKUPCARPS=`echo "$IFCONFIG" | grep 'carp: BACKUP' | wc -l`
MASTERCARPS=`echo "$IFCONFIG" | grep 'carp: MASTER' | wc -l`

if [[ "$MASTERCARPS" == "$NUMCARPS" ]]; then
printf master
elif [[ "$BACKUPCARPS" == "$NUMCARPS" ]]; then
printf backup
else
printf other
fi
}

HOSTNAME=`hostname -s`
PS1='${USER}@${HOSTNAME}:${PWD} ($(fwStatus)) $ '


On Wed, Aug 5, 2015 at 1:43 AM, Sean Kamath 
wrote:

> On Aug 2, 2015, at 8:49 AM, li...@wrant.com wrote:
>
> >> never
> >> thought of using a shell function in .profile till I read this thread.
> >
> > ...
> >
> > Functions has always been impressive once you move past the alias
> > shortcomings (can't handle arguments etc), so also worth a read the
> > "Functions" section.
>
>
> Functions have been amazingly useful and impressive for a very long time.
> They are also not limited to ksh.  In fact, my introduction to this very
> useful aspect of shell programming was from Sun's rcS script, which has
> this:
>
> # Simulates cat in sh so it doesn't need to be on the root filesystem.
> #
> shcat() {
> while [ $# -ge 1 ]; do
> while read i; do
> echo "$i"
> done < $1
> shift
> done
> }
>
>
> There have been times when I've been on systems in single user mode
> without filesystems, and knowing how to do some things we typically use
> external programs for in the shell can be a lifesaver, like "echo *" as a
> poor man's "ls".
>
> If your directory isn't *that* large, 'for i in *;  do echo $i; done | wc
> -l' works well.  Well, for some definition of 'well'.
>
> My point is that shell functions allow you to do some fairly complex
> stuff, and if you're careful, you can avoid execs.  There are places the
> shell forks, however.  It can be a fun exercise to find them with profiling
> tools. :-)
>
> Sean