Responder 
 
Avaliação do Tópico:
  • 0 Votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
Ajuda com conversão Batch >> Shell
15/10/2010, 15:47
Resposta: #1
Ajuda com conversão Batch >> Shell
Olá amigos, gostaria de saber se alguém pode me ajudar na conversão de um script em batch para Shell script, o batch é esse aqui:

Código:
@echo off
IF EXIST *.jar (
  IF EXIST file.tmp del file.tmp
  echo ^<html^>^<body>^ >file.tmp
  FOR %%x in (*.jar) DO (
    echo ^<p^>^<a href="%%x"^>%%x^<^/a^>^<^/p^> >>file.tmp
  )
  echo ^<^/body^>^<^/html^> >>file.tmp
  FOR %%x in (*.jar) DO (
    IF EXIST file.tmp (
      IF EXIST "%%x.html" del "%%x.html"
      ren file.tmp "%%x.html"
    )
  )
) ELSE (
  echo No existen .jar
  PAUSE
)

Vou explicar do que se trata, mas primeiro gostaria de dizer que sou usuário 99% linux (a 3 dias atrás era 100% heheheh) e por causa de problemas no celular tive que instalar Windows em outra partição para resolver o probema, coisa que não era possivel resolver através de máquinas virtuais, mas voltando ao assunto, depois de resolver o problema no cel. eu encontri um script em batch que cria instaladores de jogos em java no meu celular, o problema é que eu odeio ter que reiniciar a máquina toda a vez que preciso criar um instalador, é claro que posso criar o instalador atravéz de um editor de texto, mas a idéia é usar o script para poder facilitar e criar mais rapidamente já que posso criar muitos instaladores em poucos segundos com esse script, em outras palavras, converter ele pra shell script me economizaria muito mais tempo.

Agora vou explicar exatamente o que esse script que eu postei faz:

-ele procura por arquivos com extensão .jar
-depois ele cria um arquivo temporário que inicia com
<html>
<body>
-depois ele coloca um link para cada arquivo .jar coms as tags
<p><a href="nome do arquivo 1.jar]nome do arquivo 1.jar</a></p>
<p><a href="nome do arquivo 2.jar]nome do arquivo 2.jar</a></p>
<p><a href="nome do arquivo 3.jar]nome do arquivo 3.jar</a></p>
etc..
e cria links para todos os arquivos .jar da pasta
- termina o arquivo com as tags
</body>
</html>
- depois ele vê se existe um arquivo html com o mesmo nome do primeiro arquivo .jar que tem na pasta e se tiver um arquivo com nome igual ele deleta esse arquivo
-por último ele renomeia o arquivo de "file.tmp" para "nome do arquivo 1.jar.html"

Nunca consegui fazer um script em shell decente então confesso que tentei fazer apenas uma vez o script e após constatar a falha já vim aqui "suplicar por ajuda", hehe

Não sei se consegui me fazer entender com tantas palavras j(perceberam que eu sou prolixo né?) mas espero que tenha ficado clara minha dúvida, e gostaria muito se pudessem me ajudar.

Desde já agradeço e se alguém precisar de alguma coisa em que posso ajudar terei prazer de fazê-lo.

Até logo e aguardo resposta.
Visitar o website do usuário Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
15/10/2010, 18:32
Resposta: #2
Re: Ajuda com conversão Batch >> Shell
Acho que o tu precisa é isso, e não uso arquivos temporários.


Código:
#!/bin/bash
LANG=C

WHICH=$(which which)
ECHO=$($WHICH echo)
LS=$($WHICH ls)
SED=$($WHICH sed)

if $LS *.jar > /dev/null
then
  $LS *.jar | while read i
    do
      HTML=$($ECHO "$i.html" | $SED 's/.jar//g')
      $ECHO "<html>" > $HTML
      $ECHO "    <body>" >> $HTML
      $ECHO "        <p><a href="$i]$i</a></p>" >> $HTML
      $ECHO "    </body>" >> $HTML
      $ECHO "</html>" >> $HTML
    done
else
    $ECHO "Não existem arquivos .jar nesse diretório"
fi

Rodrigo Braga Prado
Consultor de Informática/Segurança
Especialista em Linux e Software Livre
Visitar o website do usuário Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
15/10/2010, 20:46
Resposta: #3
Re: Ajuda com conversão Batch >> Shell
Olá rodrigobp, muito obrigado pela ajuda eu nem esperava que a resposta viesse tão rápido, hehe

eu testei se script e não sei se fiz algo de errado mas aqui deu erro, ele retorna isso aqui

./instalador.sh: line 14: $HTML: ambiguous redirect
./instalador.sh: line 15: $HTML: ambiguous redirect
./instalador.sh: line 16: $HTML: ambiguous redirect
./instalador.sh: line 17: $HTML: ambiguous redirect
./instalador.sh: line 18: $HTML: ambiguous redirect
./instalador.sh: line 14: $HTML: ambiguous redirect
./instalador.sh: line 15: $HTML: ambiguous redirect
./instalador.sh: line 16: $HTML: ambiguous redirect
./instalador.sh: line 17: $HTML: ambiguous redirect
./instalador.sh: line 18: $HTML: ambiguous redirect

eu dei permissão de execução e o executei no mesmo diretório onde se encontram os arquivos .jar, vou dar uma olhada aqui pra ver se vejo onde estou errando e depois digo aqui

Novamente obrigado pela ajuda
Visitar o website do usuário Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
15/10/2010, 21:59
Resposta: #4
Re: Ajuda com conversão Batch >> Shell
Mais uma vez eu agradeço ao Rodrigo mas voltei aqui pra dizer que modifiquei seu script um pouco e agora está funcionando, não como o batch e diferente do que vc tentou fazer mas já é o suficiente pra eu ganhar um tempinho pra criar os instaladores de aplicativos eu fiz assim:

Código:
#!/bin/bash
LANG=C

WHICH=$(which which)
ECHO=$($WHICH echo)
LS=$($WHICH ls)
SED=$($WHICH sed)

if $LS *.jar > /dev/null
then
  $LS *.jar | while read i
    do
     HTML=$($ECHO "instalador.html")
     $ECHO "      <p><a href="$i]$i</a></p>" >> $HTML
    done
else
    $ECHO "Não existem arquivos .jar nesse diretório"
fi

ele cria um arquivo com nome de "instalador.html" depois coloca um link em cada linha, o único "problema" (se é que pode chamar de problema Sorrisão) é que eu tenho que deletar manualmente o "instalador.html" mas isso não é problema

novamente agradeço a ajuda, já que sou muito noob em shell script, hehehe, mas me ajudou muiiiiiito

abraços

___________________________________

obs: acrescentei um comando (rm "instalador.html") quase no começo do script e ele deleta o arquivo, agora já tá mais que excelente ^^
Visitar o website do usuário Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
Responder 


Ir ao Fórum:


Usuários visualizando este tópico: 1 Visitantes

Entre em Contato | Fórum Debian | Voltar ao Topo | Voltar ao Conteúdo | Modo Leve (Arquivo) | Feeds RSS