我不确定-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
并搜索"条件表达式"