加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

Linux如何编程,例如bash或python脚本,知道它是如何启动的:从命

发布时间:2020-12-14 01:36:56 所属栏目:Linux 来源:网络整理
导读:我想做以下事情: 如果从终端启动bash / python脚本,它将执行诸如打印错误消息文本之类的操作.如果从GUI会话启动脚本,例如双击文件浏览器,它将执行其他操作,例如显示GUI消息框. 解决方法 您可以检查stdin和stdout是否连接到终端.从GUI运行时,通常stdin完全没
我想做以下事情:

如果从终端启动bash / python脚本,它将执行诸如打印错误消息文本之类的操作.如果从GUI会话启动脚本,例如双击文件浏览器,它将执行其他操作,例如显示GUI消息框.

解决方法

您可以检查stdin和stdout是否连接到终端.从GUI运行时,通常stdin完全没有连接,stdout连接到日志文件.从终端运行时,stdin和stdout都将连接到终端.

在Python中:

import os
import sys

if os.isatty(sys.stdout.fileno()):
    # print error message text
else:
    # display GUI message

但是,您应该检查这是否适合您,因为它不能完全满足您的要求.但这是我能想到的最好的东西,它不依赖于太多的魔法.

在使用GUI代码之前,您应该检查DISPLAY环境变量是否已设置,因为没有它,它将无法工作.

请注意,终端用户仍然可以将stdin或stdout重定向到/ dev / null(例如),这可能会导致程序使用GUI行为.所以它远非完美.

最后,即使我已经给你答案,请不要这样做!用户对程序的行为根据其调用方式进行更改会让人感到困惑.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读