Meu problema é obter um arquivo .desktop que executa um script com parâmetro (s) em um terminal para permanecer aberto, em vez de piscar, presumivelmente levando consigo as mensagens de erro que eu preciso.
Eu mostro alguns scripts simples e .desktops para demonstrar que isso deve funcionar.
$ 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
Olá, mundo!
@ARGV:
1
a.txt
Pressione 'Enter' ou 'Return' para finalizar.
$ 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;
Quando o arquivo a.txt é solto em hello_world_desktop.desktop, um terminal é aberto com a saída mostrada (observe o nome completo do computador) e aguarda que um retorno seja descartado como antes.
Olá, mundo!
@ARGV:
/home/westmj/GoogleDrive/perl/a.txt
Pressione 'Enter' ou 'Return' para finalizar.
Agora a diversão começa. Eu tenho um script mais complexo, mas ele é executado na linha de comando e leva um parâmetro de nome de arquivo com sucesso, e espera pacientemente ser dispensado.
$ /usr/bin/perl /home/westmj/GoogleDrive/perl/attenders.pl /home/westmj/GoogleDrive/perl/Attenders_database.xls
Banco de dados de entrada encontrado em /home/westmj/GoogleDrive/perl/Attenders_database.xls
Cópia feita de
/home/westmj/GoogleDrive/perl/Attenders_database.xls como o
/ home / westmj / GoogleDrive / perl / -
2016_08_Aug_11_ / home / westmj / GoogleDrive / perl / Attenders_database.xls
manter o histórico do banco de dados.
Versão do banco de dados '11 de agosto de 2016' Sufixo do arquivo '2016_08_Aug_11'
Diretório de saída = / home / westmj / GoogleDrive / perl /
Concluído com a criação de relatórios.
Pressione 'Enter' ou 'Return' para sair.
E eu tenho um arquivo .desktop que deve estar usando a mesma chamada:
$ 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;
Mas se eu arrastar Attenders_database.xls para o attenders_desktop_04.desktop, tudo o que acontece é que um terminal abre e fecha brevemente.
Eu não acho que seja uma questão de permissões.
$ 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
E agora? Obrigado por qualquer conselho.