Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Is there a way to make &>/dev/null the default behavior in a sh/bash script? I' rather not have to appended this to every command within the console, not an *.sh script.

I'm looking to make a global setting...or at least a custom alias of some sort, but one that makes any command and every command, auto-append &>/dev/null to the end.

Any ideas?

share|improve this question
Why, on earth, would you want to do this? Output exists for a reason, and though it is helpful to sometimes get rid of that output, making it the default seems very odd to me. – HalosGhost Jul 3 '14 at 20:47
Why?, I need to know. – richard Jul 3 '14 at 21:56

Add exec &>/dev/null in the beginning of bash script

share|improve this answer
~/.bashrc is suddenly a bash script, too. – tijagi Jul 4 '14 at 0:56

In the shell:

exec >/dev/null
# still shows the prompt
exec 2>/dev/null
# now the prompt is gone, too

# restore stdout
exec >/dev/tty
# restore stderr
exec 2>/dev/tty
share|improve this answer
you can make the prompt go by redefining PS – richard Jul 3 '14 at 21:55
@richard I did not mean only what the shell prints automatically but also the commands you type (which are not affected by PS1). – Hauke Laging Jul 3 '14 at 22:05
@John1024 That's strange: I thought that it should work with /dev/tty. I tested that and it didn't work thus I used the other way. If I test it again now it works... No idea what may have gone wrong before. – Hauke Laging Jul 4 '14 at 2:31

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.