I have a script that I want to have a different behaviour depending on whether it was launched from the terminal or by (double) clicking the icon in the file manager. Can I do this?
Answer
You can use differences in the return status from tty
to help you.
if tty -s;
then
# running in a terminal
...
fi
(tty -s
runs the tty
command silently)
Exit status:
- 0 if standard input is a terminal
- 1 if standard input is not a terminal
- 2 if given incorrect arguments
- 3 if a write error occurs
Or you could use the shell's built-in tests to check whether standard input/output are from/to a terminal:
if [ -t 0 ]; # stdin
then
# running in a terminal
...
fi
No comments:
Post a Comment