check isatty in bash

Я хочу, чтобы мой оболочки, чтобы определить, если поведение человека, а затем показать подсказку.

Итак, предположим, что файл называется 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

Но я обнаружил, что он не может работать, если я не установил PS1. Есть ли лучший метод?

мои методы тестирования:

./test.bash                  # human interactive
./test.bash > /tmp/test.log  # stdout in batch mode
ls | ./test.bash             # stdin in batch mode
16
задан Daniel YC Lin 21 August 2012 в 01:48
поделиться