.desktop 调用 perl 和终端闪烁而不运行;但使用终端中的 EXEC 行运行良好

.desktop 调用 perl 和终端闪烁而不运行;但使用终端中的 EXEC 行运行良好

我的问题是获取一个 .desktop 文件,该文件在终端中运行带有参数的脚本以保持打开状态而不是闪烁,大概是带走了我需要的错误消息。

我展示了一些简单的脚本和.desktops来证明它可以工作。

$ cat /home/westmj/GoogleDrive/perl/hello_world.pl
 #! /usr/bin/perl
 print "Hello, World!\n\@ARGV:\n";
 foreach $arg (@ARGV) {
    print "$arg\n";
}
warn "Press 'Enter' or 'Return' to finish.\n";
<STDIN>

$ /usr/bin/perl /home/westmj/GoogleDrive/perl/hello_world.pl 1 a.txt

你好,世界!
@ARGV:
1
a.txt
按“Enter”或“Return”完成。

$ cat hello_world_desktop.desktop
#
[Desktop Entry]
Version=1.0
Name=Hello_World_desktop
Comment=Execute by dropping file onto
Exec=/usr/bin/perl /home/westmj/GoogleDrive/perl/hello_world.pl '%F'
Terminal=true
Type=Application
MimeType=application/vnd.ms-excel;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;inode/directory;text/plain;text/x-script.perl;

当将文件 a.txt 放到 hello_world_desktop.desktop 上时,将打开一个终端并显示输出(注意完整路径名),并像以前一样等待返回。

你好,世界!
@ARGV:
/home/westmj/GoogleDrive/perl/a.txt
按“Enter”或“Return”完成。

现在好玩的事情开始了。我有一个更复杂的脚本,但它在命令行上运行并成功获取了文件名参数,然后耐心等待被关闭。

$ /usr/bin/perl /home/westmj/GoogleDrive/perl/attenders.pl /home/westmj/GoogleDrive/perl/Attenders_database.xls

在 /home/westmj/GoogleDrive/perl/Attenders_database.xls 中找到输入数据库 将/home/westmj/GoogleDrive/perl/Attenders_database.xls
副本制作

/home/westmj/GoogleDrive/perl/ -
2016_08_Aug_11_/home/westmj/GoogleDrive/perl/Attenders_database.xls
以维护数据库历史记录。
数据库版本“2016 年 8 月 11 日”文件后缀“2016_08_Aug_11”
输出目录 = /home/westmj/GoogleDrive/perl/

报告创建完毕。

按“Enter”或“Return”退出。

我有一个 .desktop 文件应该使用相同的调用:

$ cat attenders_desktop_04.desktop
 #
 [Desktop Entry]
 Version=1.0
 Name=attenders_desktop_04
 Comment=Drag and drop onto this the Attenders_database.xls[x] and optionally directory for output
 Exec=/usr/bin/perl /home/westmj/GoogleDrive/perl/attenders.pl '%F'
 Terminal=true
 Type=Application
 MimeType=application/vnd.ms-excel;application/vnd.ms-office;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;inode/directory;application/zip;

但是如果我将 Attenders_database.xls 拖到 attendancers_desktop_04.desktop 上,所发生的只是终端短暂地打开和关闭。

我不认为这是一个权限的问题。

$ ls -la *.desktop
-rwxrw-r-- 1 westmj westmj 411 Sep 16 21:55 attenders_desktop_04.desktop
-rwxrw-r-- 1 westmj westmj 340 Sep 16 21:52 hello_world_desktop.desktop

现在怎么办?谢谢您的建议。

相关内容