[CentOS] /etc/bashrc help!

Tue Apr 19 21:33:08 UTC 2011
Marian Marinov <mm at yuhu.biz>

On Wednesday 20 April 2011 00:26:04 Marian Marinov wrote:
> On Tuesday 19 April 2011 20:18:38 Roland Roland wrote:
> >   Dear all,
> > 
> > i've appended the below to /etc/bashrc it works like a charm with ssh
> > connections though SFTP sessions fail since the below is being sent to
> > the intiator.
> > any way of limiting the below to none sftp sessions? or any other idea
> > for it to work?
> > 
> > 
> > # If id command returns zero, you’ve root access.
> > if [ $(id -u) -eq 0 ];
> > then # you are root, set red colour prompt
> > echo "###############################################"
> > echo "### You are now working as ROOT. ###"
> > echo "### Pay attention to what you type. ###"
> > echo "###############################################"
> > PS1="\\[$(tput setaf 1)\\]\\u@\\h:\\w #\\[$(tput sgr0)\\]"
> > else # normal
> > echo
> > echo " ###########################################################"
> > echo "Welcome $(whoami), here's something to start your day with:"
> > echo
> > echo `sh /etc/lines.sh /etc/quotes.txt`
> > echo " ############################################################"
> > echo
> > PS1="[\\u@\\h:\\w] $"
> > fi
> 
> Rolan, you have two choices:
> 
> 1. Print the whole content on STDERR so you don't disturb the sftp
> 
> 2. if [ "$-" != 'hBc' ]; then echo 'your content here'; fi
> 
> If you go to the second option, the idea there is that $- is set to hBc
> every time you use the shell from SFTP (non-interactive mode). So you echo
> all the things you like only if it is an interactive shell.
> 
> Marian

Just to make things clear, this is from the bash manual:

   An  interactive  shell  is one started without non-option arguments and 
without the -c option whose standard input and error are both connected to 
terminals (as determined by isatty(3)), or one started with the -i option. PS1 
is set and $- includes i if bash is interactive, allowing a shell script or a 
startup file to test this state.

You can also test if you want with these two tests:

  if [[ "$-" =~ 'i' ]]; then echo interactive; fi

  if ( echo $- |grep i > /dev/null ); then echo interactive; fi

Marian


-- 
Best regards,
Marian Marinov
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.centos.org/pipermail/centos/attachments/20110420/5c9f2f92/attachment-0005.sig>