[Ubuntu-BR] Executar Scripts Tcl-Tk nu Ubuntu 12.04

Mario Vianna soltec em br.inter.net
Quarta Julho 4 01:54:14 UTC 2012


Prezado Humberto

Homem, não é que você matou a charada!

Redigitei o S.tcl do zero no gedit, salvei e ele executou direitinho. 
Venho desenvolvendo estes scripts há alguns anos e é bem possível que 
alguns deles tenham sido desenvolvidos ainda no Windows e estavam com o 
final de linha cr_lf.

Eu não tinha este problema até o Ubuntu 10.04 porque ele permitia 
vincular tipos de arquivo aos programas executores, mesmo aos que não 
estavam na central de programas do Ubuntu, e eu vinculava os arquivos 
.tcl ao wish do pacote que baixava do site do Active State. Deste modo 
não precisava nem do #!/usr/bin/wish no início dos scipts. Bastava 
clicar no arquivo e ele "sabia" que tinha de rodar com o wish.

Infelizmente o Ubuntu 12.04 não oferece mais a opção de, a partir da 
janela "propriedades" e da aba "Abrir com", procurar livremente no 
sistema de arquivos a qual programa desejamos vincular a execução 
daquele tipo de arquivo, o que tem me causado alguns transtornos aqui. 
Considero isto um retrocesso no grau de liberdade do Ubuntu.

Não precisei usar o iconv porque tenho aqui um script em tcl/tk que 
converte os "enter" dos arquivos texto para o sistema nativo do 
computador, seja do Windows para o Linux, seja do Linux para Windows. 
Passei ele em outro script tcl e ele passou a funcionar perfeitamente 
também.

Muito obrigado pela ajuda. Valeu!


Abraços

Mário Vianna


Em 01-07-2012 15:19, Humberto Fraga escreveu:
> Humberto Fraga
> Em 01/07/2012 12:13, "Mario Vianna" <soltec em br.inter.net> escreveu:
>> 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 )
> Mário, esse ^M no final da linha pode ser a origem do problema. Por acaso
> você copiou essa linha de algum site, ou de um arquivo que foi editado no
> Windows?
>
> Pesquise pelo comando iconv, para converter os finais de linha de Dos para
> Unix.
>
>> 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
> Pode ser o mesmo problema, de ele não encontrar o wish^M.
>
>> 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 <soltec em 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 <soltec em 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 <soltec em 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






More information about the ubuntu-br mailing list