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 ```