如何重定向桌面条目的输出

Vio*_*rel 2 mono redirect .desktop

我有一个用 C# 编写的名为prg.exe的程序。我想使用参数 (arg1) 在单声道中运行此程序,并将输出重定向到名为log.txt的日志文件。
如果我打开终端并输入命令:

mono --debug prg.exe arg1 > log.txt
Run Code Online (Sandbox Code Playgroud)

一切正常。
程序完成后,将创建log.txt文件,其中包含所有错误。

现在我想创建一个名为prg.desktop的桌面条目:

[Desktop Entry]
Name=My prg
Comment=some comment
Icon=/usr/share/pixmaps/openbox.xpm
Exec=mono --debug prg.exe arg1 > log.txt
Type=Application
Encoding=UTF-8
Terminal=false
Categories=None;
Run Code Online (Sandbox Code Playgroud)

如果我运行prg.desktop,则不会创建log.txt文件。 上面的脚本是经过简化的。事实上,Exec 行分别包含prg.exelog.txt文件的完整路径。 我需要做什么来创建日志文件? 非常感谢。



HuH*_*uHa 5

您不能直接执行此操作,因为该命令是直接执行的,而不是通过 shell,因此 I/O 重定向在这里不起作用。

但它应该可以将其包装到 shell 调用中,如下所示:

Exec=sh -c "mono --debug prg.exe arg1 > log.txt"
Run Code Online (Sandbox Code Playgroud)

请注意,虽然进行一些调试是完全可以的,但如果这是更永久的东西,我会将其移至 shell 脚本中。桌面文件不适合严肃的脚本编写。