我希望我的脚本能够以交互方式和cron运行。在后一种情况下,如果没有初始化某些env变量并且没有提示用户输入它们,它应该只记录并退出。在C中我会通过_isatty(_fileno(stdin))
检查它,但是如何在tcl中执行此操作? tcl wiki建议使用set interactive [ expr ! [ catch { exec /bin/sh -c { [ -t 0 ] }}]]
,但由于显而易见的原因,这不会在Windows上运行。
[dict exists [fconfigure stdin] -mode]
也不起作用,这是我从终端-blocking 1 -buffering line -buffersize 4096 -encoding cp1251 -eofchar -translation auto
答案 0 :(得分:1)
我有坏消息。我检查了代码和Windows控制台通道类型处理程序doesn't declare any custom options(与非Windows不同,其中控制台是串行通道,因此提供-mode
和其他选项)。因此,无法进行检测。