Read more

Bash: How to only do things in interactive shells

Thomas Eisenbarth
December 06, 2013Software engineer at makandra GmbH

When you print something from within your .bashrc file you will run into trouble when copying something onto your machine using scp for example.

Illustration UI/UX Design

UI/UX Design by makandra brand

We make sure that your target audience has the best possible experience with your digital product. You get:

  • Design tailored to your audience
  • Proven processes customized to your needs
  • An expert team of experienced designers
Read more Show archive.org snapshot

This is because the output from your .bashrc interferes with scp. The solution is to decide whether the bash shell is started interactively (you start a terminal on your screen) or not (scp).

if [ ! -z "$PS1" ]; then
  # This happens in interactive shells only and does not interfere with scp.
  echo "Learn!"
fi
Posted by Thomas Eisenbarth to makandra dev (2013-12-06 11:05)