我使用 Gedit 作为我最喜欢的文本编辑器。是否可以用 Python 或 Bash 编写一个脚本来检查 Gedit 是否正在运行并包含未保存的文本?
答案1
Gedit 正在运行
pidof gedit
应该给你答案
包含未保存的文本
据我所知,Gedit 不支持任何 DBus 接口,这使得这项任务相对困难但可能:
#! /bin/bash
for i in `pidof gedit`; do
for j in `xdotool search --name --onlyvisible --pid $i`; do
title=`xdotool getwindowname $j`
case $title in
\**)
echo "Found running Gedit with unsaved data"
;;
*)
echo "Gedit is open but there are no unsaved documents"
;;
esac
done
done
这个脚本的作用。它迭代所有找到的 gedit 进程,找到它们的可见窗口,迭代它们的标题并检查标题是否包含*
指示未保存文档的第一个字符。
Bash/shell 纯粹主义者可能会想要替换``
为$( )
.