我正在编写一个使用ANSI颜色字符的shell脚本。
示例:example.sh
#!/bin/tcsh
printf "\033[31m Success Color is awesome!\033[0m"
我的问题是在执行以下操作时:
$ ./example.sh > out
或者$./example.sh | grep
在文本中,ASCII码会与文本一起原样发送,这样会破坏输出并导致混乱。我想知道是否有一种方法可以检测这种情况,以便我可以针对此特殊情况禁用颜色。
我已经搜索了tcsh man页面和网络一段时间,但尚未能够找到任何特定于shell的内容。
虽然我们的组标准是tcsh,但我并没有受到限制。
在shell脚本内部,是否有可能检测输出是否被重定向或管道传输?