为什么"gnome-screensaver-command -q > test.txt"不输出到文件?

Why "gnome-screensaver-command -q > test.txt" do not output to file?

简而言之,我正在寻找命令输出未到达文件的解释。如果我在这里做错了什么,我该如何正确地做才能使输出到达文件?

命令:

gnome-screensaver-command -q > test.txt

TL;TR

起初,短篇小说,我的目的是为 bash 脚本找到一种方法来判断某人是否在计算机上工作(屏幕已解锁)或不在(屏幕已解锁)锁定)。看来我已经找到了命令 (gnome-screensaver-command -q),也许,还不确定,因为我无法用脚本真正检查 locked/unlocked 阶段..

如果我在终端屏幕中 运行 命令 gnome-screensaver-command -q 然后我会按预期返回输出。输出表明我使用以下命令走在正确的道路上:

** Message: 00:06:00.049: Screensaver is not running!

如果我 运行 脚本中的相同代码并将结果输出到变量 IS_SCREEN_LOCKED=$(gnome-screensaver-command -q) 那么我什么也得不到。我的意思是, $IS_SCREEN_LOCKED 变量的值是空。

如果我在终端中 运行 gnome-screensaver-command -q > test.txt 然后 ** Message: 00:06:00.049: Screensaver is not running! 到达屏幕并且没有任何东西到达文件......这告诉我重定向本身工作正常(因为文件已创建),只是命令有所不同...有人可以解释一下这里的输出有什么技巧吗?

我怀疑它是某种“不同类型的流”。是否有一种流,不确定这是否适合它,称为“查询”,如 man 所述 -q - Query the state of the screensaver?... 不确定将输出定向到此处文件的命令有什么问题。

系统详情:

它可能正在写入 stderr 而不是 stdout。所以重定向 fd 2 而不是 fd 1。

gnome-screensaver-command -q 2> test.txt