Prezado Humberto

Com o script S.tcl começando com:
#!/usr/bin/wish
Quando eu abro um terminal e digito:
/usr/bin/wish /home/eu/Tcl/Prontos/S.tcl
o script roda normalmente.

Gravei um script que chamei de Excutor-tcl no diretório do S.tcl que contem somente a seguinte linha:
/usr/bin/wish "./S.tcl"
Quando clico no Executor-tcl e mando executar na caixa de diálogo que se abre,
ele inicia o programa S.tcl que roda normalmente.

Quando entro no terminal e mando:
cd /home/eu/Tcl/Prontos ele muda para o diretorio onde está o S.tcl. Aí eu digito somente:
./S.tcl
Aparece no terminal a seguinte mensagem de erro:
bash: ./S.tcl: /usr/bin/wish^M: interpretador inválido: Arquivo ou diretório não encontrado
( Achei estranho este ^M depois de wish, mas é o que está aparecendo )
E o S.tcl não roda.
Ai mandei um $PATH e obtive:
bash: /usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games: Arquivo ou diretório não encontrado Portanto o /usr/bin está lá e ele deveria estar achando o wish lá, mas nã está e achei estranho este ": Arquivo ou diretório não encontrado" no final do PATH.

Quando simplesmente clico no arquivo S.tcl e mando executar em um terminal aparecem as seguintes mensagens:
O processo filho saiu normalmente com o status 127.
/bin/sh: 1: /home/eu/Tcl/Prontos/S.tcl: not found
E o S.tcl não roda
Como ele pode não encontrar um endereço que ele próprio captou quando cliquei no arquivo?

Assim, continuo agradecendo qualquer ajuda.

Reparem, por favor que não é off-topic porque não parece ser problema do tcl nem do meu script S.tcl, e sim, do Ubuntu 12.04 para localizar os arquivos.


Atenciosamente
Mário Vianna

Em 30-06-2012 19:44, Humberto Fraga escreveu:
Mario, fiz agora os testes. desculpe a demora em responder, mas no meu
trabalho ainda estamos com o Ubuntu 10.04.

Criei no vim o script que você forneceu de exemplo. Executei chamando o
wish e funcionou. Depois, adicionei a permissão de execução (chmod +x) e
executei diretamente no terminal (./teste.tcl) e também funcionou. Depois
fui no nautilus e dei um duplo clique no arquivo. Ele me mostrou a caixa de
diálogo, e clicando no executar também funcionou.

Lembrando que para fazer esse teste, apenas instalei o tk e suas
dependências.

Você pode tentar usar a opção "Executar em terminal" da caixa de diálogo
para ver se ele escreve algum erro.


Em 30 de junho de 2012 15:05, Mario Vianna <sol...@br.inter.net> escreveu:

Prezado Edgard

Instalei sim, pois, como afirmo na mensagem abaixo:


Se eu abro um terminal e digito:
/usr/bin/wish /home/eu/Tcl/s.tcl
O programa roda sem problemas

Inclusive instalei o Active Tcl que tem alguns recursos a mais.

Outra coisa que fiz, desde a minha última mensagem, foi me lembrar que o
ActiveTcl vem com um aplicativo chamado tkcon, que é um console escrito em
tcl/tk. Cliquei nele e ele abriu. Eu, todo contente pensando que tinha
achado uma solução: seria só copiar as primeiras linhas do tkcon para o meu
programa, deixar as permissões e demais propriedades dos arquivos
iguaizinhas, botei até meu programa no mesmo diretório do tkcon, mas, para
minha decepção, o tkcon abre quando clica nele e o meu não. Não consegui
encontrar ainda a diferença entre os arquivos que causa esta diferença de
comportamento. As primeiras linhas do tkcon que copiei para meu arquivo são:

#!/bin/sh
# \
exec "/home/eu/Tcl-Active/bin/**wish8.5" "$0" ${1+"$@"}

Abraços

Mário Vianna



Em 30-06-2012 12:37, Edgar Wascch escreveu:

  Uma pergunta boba: Você instalou as bibliotecas tcl e tk?
Em 30-06-2012 11:57, Mario Vianna escreveu:

Prezado Renato

Tentei mas não deu certo. Creio que este comando é a mesma coisa que
assinalar o quadradinho "Permitir a execução do arquivo como programa" no
Nautilus, na aba propriedades, o que eu já havia feito.

Assim, a pergunta abaixo continua de pé:

Como faço para executar scripts tcl/tk no Ubuntu 12.04 sem ter de abrir
o terminal e teclar todo o path do shell wish e mais o do script?

Uma outra solução que o livro de tcl que tenho sugere é colocar as três
linhas seguintes no começo do script:

#!/bin/sh
# Notem a barra invertida no final \
exec wish -f "$0" ${1+"$@"}
( aqui vai o resto do script propriamente dito )

Mas também não roda o programa.

Parece até que o 12.04 desabilitou chamar um shell a partir do comando
#! no início do script.

Agradeço qualquer ajuda.



Abraços

Mário Vianna


Em 27-06-2012 08:50, Renato Costallat escreveu:

sudo chmod +x "arquivo"

creio que seja o que vc quer!

Abraços

2012/6/24 Mario Vianna <sol...@br.inter.net>

  Prezado Humberto
Segue, no fim da mensagem um scipt simples, só para ilustração do
problema.
Se eu abro um terminal e digito:
/usr/bin/wish /home/eu/Tcl/s.tcl
O programa roda sem problemas
Mas se eu clico no arquivo dele, ele não roda, mesmo começando com:
#!/usr/bin/wish
Em Ubuntus anteriores rodava.
Até abre a caixa de diálogo que pergunta se eu quero exibir ou
executar,
mas, quando eu clico em executar, a caixa de dialogo fecha e o
programa não
executa.

Em ubuntus anteriores se tinha o recurso de vincular os programas
terminados em .tcl com o wish, o que também fazia com que o programa
fosse
executado. Mas, no 12.04 não consegui fazer esta vinculação.
------------------------------****----------------------
#!/usr/bin/wish
#
button .b0 -text Criar -command {Criar Sair} -width 15
pack .b0

proc Criar {nome} {
     button .b1 -text $nome -command exit -width 15
     pack .b1
     .b0 config -state disabled
}
------------------------------****-----------------------


Abraços
Mário Vianna


Em 23-06-2012 14:33, Humberto Fraga escreveu:

   Em 23 de junho de 2012 08:51, Mario Vianna <sol...@br.inter.net>

escreveu:

   Permitir a execução do arquivo como um programa

que, ao clicar no arquivo, aparecia aquela caixa de diálogo
perguntando
se
quer exibir ou executar e quando escolhíamos executar o script tk
começava
a executar. Isto não está funcionando aqui no Ubuntu 12.04, apesar do
wish
ter um link para ele instalado em /usr/bin ( nos Ubuntu anteriores
também
era um link ), clicando-se no qual o wish começa a rodar.

Alguém sabe como faço para que ao clicar em arquivos de script
tcl/tk ele
comece a executar no Ubuntu 12.04? Melhor ainda se alguém souber
como ele
começar a rodar sem nem aparecer aquela caixa de diálogo perguntando
se
eu
quero executar ou exibir, ou seja, já começar a executar direto.

   O que você fez no Ubuntu 12.04 e o que aconteceu errado? Tem como
você

nos
passar um script simples (talvez pelo pastebin.com) para a gente
testar?



--
Mais sobre o Ubuntu em português: 
http://www.ubuntu-br.org/****comece<http://www.ubuntu-br.org/**comece>
<http://www.ubuntu-br.**org/comece <http://www.ubuntu-br.org/comece>>

Lista de discussão Ubuntu Brasil
Histórico, descadastramento e outras opções:
https://lists.ubuntu.com/****mailman/listinfo/ubuntu-br<https://lists.ubuntu.com/**mailman/listinfo/ubuntu-br>
<htt**ps://lists.ubuntu.com/mailman/**listinfo/ubuntu-br<https://lists.ubuntu.com/mailman/listinfo/ubuntu-br>>








--
Mais sobre o Ubuntu em português: 
http://www.ubuntu-br.org/**comece<http://www.ubuntu-br.org/comece>

Lista de discussão Ubuntu Brasil
Histórico, descadastramento e outras opções:
https://lists.ubuntu.com/**mailman/listinfo/ubuntu-br<https://lists.ubuntu.com/mailman/listinfo/ubuntu-br>






--
Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece

Lista de discussão Ubuntu Brasil
Histórico, descadastramento e outras opções:
https://lists.ubuntu.com/mailman/listinfo/ubuntu-br

Responder a