Wil*_*hes 9

从 Rust 1.70 开始,std::io::IsTerminal可用:

use std::io::IsTerminal;

fn main() {
    dbg!(std::io::stdout().is_terminal());
}
Run Code Online (Sandbox Code Playgroud)

或者,crossterm 有一个 is_tty() 方法,并且还有is-terminal crate(一个维护的 fork atty)。


Nic*_*lay 5

翻译成 POSIX 语言,您的问题将是:“stdout 不是 TTY”,因此 *nix 上的答案可以通过!isatty(STDOUT_FILENO). 在libc的箱子可以用来锈菌调用它。

在 Windows 上,它很复杂,所以最好使用atty crate。