什么时候对 tty 使用“silent”有用?

什么时候对 tty 使用“silent”有用?

如果tty --help执行该命令则显示

tty --help
Usage: tty [OPTION]...
Print the file name of the terminal connected to standard input.

  -s, --silent, --quiet   print nothing, only return an exit status
      --help     display this help and exit
      --version  output version information and exit

因此,当tty -s执行时它不会返回任何内容

问题

  • 什么时候有用沉默的为了tty

答案1

#!/bin/sh

# Script that is run regularly from cron,
# but also sometimes from the command line.

interactive=false
if tty -s; then
    echo 'Running with a TTY available, will output friendly messages'
    echo 'and may be interactive with the user.'
    interactive=true
fi

# etc.

简而言之,它提供了一种测试 TTY 是否附加到当前 shell 会话的标准输入流的方法,这表明脚本可以通过读取标准输入流来与用户交互。您还可以使用测试[ -t 0 ]或等效方法来完成此操作test -t 0,即真的如果 fd 0(标准输入)是 TTY。

-s选项及其变体是非标准的(不是的 POSIX 规范tty), 和OpenBSD 手册tty还提到了-t测试(其中标准):

-s
不要写终端名称;指定此选项时,仅影响退出状态。 -s 选项已被弃用,取而代之的是“test -t 0”命令。

相关内容