check isatty in bash

bash, shell

Solution

to elaborate, I would try

 if [ -t 0 ] ; then
    # this shell has a std-input, so we're not in batch mode 
   .....
 else
    # we're in batch mode

    ....
 fi

I hope this helps.

Problem

I want my shell to detect if human behavior, then show the prompt. So, assume the file name is test.bash ``` #!/bin/bash if [ "x" != "${PS1:-x}" ] ;then read -p "remove test.log Yes/No" x [ "$x" = "n" ] && exit 1 fi rm -f test.log ``` But, I found it can not work if I haven't set PS1. Is there better method? my test methods: ``` ./test.bash # human interactive ./test.bash > /tmp/test.log # stdout in batch mode ls | ./test.bash # stdin in batch mode ```

Original source