1

質問は、bash スクリプトからの Fool python の os.isattyとはやや反対です。stdin が tty に接続されていると考えるには、Python スクリプトが必要です。

特に、sys.stdin.isatty() に応じて動作を変更するスクリプトを使用する必要があります。しかし、Python が bash ループで呼び出されると、stdin.isatty() は false を返します。

cat 'file.txt' | while read ENTRY
do
python -c "import sys; print sys.stdin.isatty()"
done

おそらくその呼び出しをラップする方法があるので、pythonはそれがttyから呼び出されたと考えます。

4

1 に答える 1

1

あなたの場合、Python スクリプトの入力を単独でリダイレクトしてみることができます。

cat 'file.txt' | while read ENTRY
do
  python -c "import sys; print sys.stdin.isatty()" < /dev/tty
done
于 2013-11-04T11:00:13.833 に答える