How to recognize whether a script is running on a tty?
Question:
I would like my script to act differently in an interactive shell session and when running with redirected stdout (for example when piped to some other command).
How do I recognize which of these two happen in a Python script?
Example of such behavior in existing program: grep –color=auto highlights matches when running in interactive shell, but doesn’t when piped to something else.
Answers:
import os, sys
os.isatty(sys.stdout.fileno())
or
sys.stdout.isatty()
I would like my script to act differently in an interactive shell session and when running with redirected stdout (for example when piped to some other command).
How do I recognize which of these two happen in a Python script?
Example of such behavior in existing program: grep –color=auto highlights matches when running in interactive shell, but doesn’t when piped to something else.
import os, sys
os.isatty(sys.stdout.fileno())
or
sys.stdout.isatty()