I have a bash script that prompts the user for input with 'read'. If stdout or stderr is piped to something other than a terminal, I would like to suppress this step. Is that possible?
+7
A:
You can check whether a filedescriptor is a tty(attached to a terminal) with the command test -t <filedescriptor no.>. If it is, you can prompt the user. If it isn't, output is probably piped or redicted somewhere.
if test -t 1 ; then
echo stdout is a tty
fi
nos
2009-07-29 22:02:15
Thanks! Exactly what I was looking for.
alberge
2009-08-02 21:42:02