我有一个 bash
脚本,如果输出显示在终端中,或者如果它被重定向到一个文件,它必须以不同的方式运行。它必须做这样的事情(myscript.sh
):
if [ redirected_to_terminal ] ; then
flag="--color"
else
flag="--no-color"
fi
grunt $flag
这会被这样调用:
./myscript.sh
或者像这样:
./myscript.sh > /tmp/log.txt
stdout
的重定向将在脚本中检测到。这可能吗?
最佳答案
你可以使用 bash 的 -t
选项:
-t fd True if file descriptor fd is open and refers to a terminal.
然后像这样检查:
if [[ -t 1 ]]; then
# console is attached
else
# Redirected to somewhere
fi
关于bash - 检查脚本是否已被重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16033221/