在shell脚本if语句中-t标志是什么意思?



我不确定-t标志对unix shell脚本意味着什么,因为我在网上找不到任何关于它的提及。

我遇到了一个bash shell脚本的if语句。我包含了一个经过处理的代码片段:

source "${BASH_SOURCE%/*}"/some_script
if [[ ! -t 0 ]] && [[ $(id -u) == 0 ]]; then
echo 'got here'
else
echo 'no get here'
fi

我不明白"-t"test命令中的标志。我认为它与测试文件没有任何关系,因为它没有出现在我发现的其他文件测试标志中,因为0不是一个文件。

提前感谢。

-t的含义:

True if file descriptor is open and refers to a terminal.

在本例中,文件描述符0是标准输入,因此它将检查标准输入是否来自终端。

要获得这些文件描述符的完整列表,请运行man bash并搜索"条件表达式"

相关内容

  • 没有找到相关文章

最新更新