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