如果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”命令。