【问题标题】:How can I tell if STDIN is connected to a terminal in Perl?如何判断 STDIN 是否连接到 Perl 中的终端?
【发布时间】:2009-02-09 16:10:51
【问题描述】:

如何判断 STDIN 是否连接到 Perl 中的终端?

【问题讨论】:

    标签: perl terminal stdin


    【解决方案1】:
    if (-t *STDIN) {
      # stdin is connected
    } else {
      # stdin is not connected
    }
    

    我通常将它与 -t *STDOUT 结合使用,以确定我是从交互式 shell 还是从 cron 运行,以启用更多输出。

    【讨论】:

      【解决方案2】:

      您可能还对IO::Interactive 感兴趣,以了解 Perl 是否认为它正在与用户交互。仅仅连接到一个 tty 并不意味着用户会看到你在做什么。

      【讨论】:

        【解决方案3】:

        一种解决方案是使用 tty

        [root@server] ~> tty
        /dev/pts/0
        [root@server] ~> echo y | tty
        not a tty
        

        但不是很漂亮……

        【讨论】:

          猜你喜欢
          • 2020-02-06
          • 2023-01-23
          • 2011-10-23
          • 1970-01-01
          • 2012-04-18
          • 1970-01-01
          • 2015-10-08
          • 2010-10-15
          • 2010-10-14
          相关资源
          最近更新 更多