+ Responder ao Tópico



  1. #1

    Padrão Pegar início de URL em ShellScript

    Bom dia...

    Estou fazendo um script de instalação aqui, e em certa altura ele vai pedir para o usuário inserir uma URL como fonte de instalação. O que eu queria fazer era verificar o protocolo da URL (FTP ou HTTP), do tipo:
    Se o usuário digitar uma URL que começe com "http://" ele vai mostrar uma mensagem na tela dizendo que ele está inserindo uma fonte HTTP, e se ele inserir uma URL que comece com "ftp://", ele vai mostrar uma mensagem que ele está inserindo uma fonte FTP. Caso não aconteça nenhum dos dois, ou o usuário esquecer de digitar http:// ou ftp:// ele vai dizer que o protocolo não foi especificado.

    Grato pela ajuda!!

  2. #2

    Padrão Pegar início de URL em ShellScript

    eh meio gambiarra mas num sei se tem jeito melhor de fazer, leia o que ele digitar (isso vc jah fez neh?) ai vc usa o wc (ou cut? deu branco) pra pegar os primeiros caracteres e verifica se contem o http:// ou o ftp://

  3. #3

    Padrão Pegar início de URL em ShellScript

    Eu vi um outro post aqui esses dias falando sobre pegar as 3 primeiras letras de uma string... https://under-linux.org/modules.php?...wtopic&t=38989

    Acho que isso poderia me ajudar bastante, mas não entendi muito bem... comecei a me interessar por Shell esses dias atrás e já baixei bastante material, mas muito pouco detalhados... ops:

    Valew pela ajuda!

  4. #4

    Padrão Pegar início de URL em ShellScript

    eh akilo jah te deu a resposta, eh mais ou menos assim
    suponha q o valor que o cara digite esteja na variavel ENDERECO
    PROTO=$ENDERECO | cut -b 3

    ai com o $PROTO vc tera as 3 primeiras letras

  5. #5

    Padrão Pegar início de URL em ShellScript

    O único problema é que FTP:// são 6 caracteres e HTTP:// são 7 caractereres...
    Acho que seria mais ou menos o seguinte:
    Ele leria os 7 caracteres e analisaria o conteúdo pra ver se encontra FTP:// ou HTTP://
    Pensando desse modo, não haveria necessidade de criar algo para ler X determinados caracteres.. ele procuraria dentro do variável URL pelo FTP ou HTTP, ao invés de ficar colocando mais código pra filtrar somente algumas letras...
    Concorda?

  6. #6

    Padrão Pegar início de URL em ShellScript

    cara..

    o q vc pode fazer é um if e la vai com mais alguma coisa e colocar da seguinte forma:

    #!/bin/bash

    url=
    read
    var="echo {$url} | grep ^ftp | wc -l"

    if [ "$var" = "0" ]; then
    echo "endereço ftp"
    else
    echo "endereço http"
    fi


    valew

  7. #7

    Padrão Pegar início de URL em ShellScript

    mas pode tbm ser bem mais feitinho, checando qualquer começo q o usuário digitar...

    qualquer coisa tamo ae

  8. #8
    Visitante

    Padrão Pegar início de URL em ShellScript

    Citação Postado originalmente por lucianogf
    cara..

    o q vc pode fazer é um if e la vai com mais alguma coisa e colocar da seguinte forma:

    #!/bin/bash

    url=
    read
    var="echo {$url} | grep ^ftp | wc -l"

    if [ "$var" = "0" ]; then
    echo "endereço ftp"
    else
    echo "endereço http"
    fi


    valew
    Aquela parte do read tá certo?

  9. #9

    Padrão Pegar início de URL em ShellScript

    Citação Postado originalmente por Anonymous
    Citação Postado originalmente por lucianogf
    cara..

    o q vc pode fazer é um if e la vai com mais alguma coisa e colocar da seguinte forma:

    #!/bin/bash

    url=
    read
    var="echo {$url} | grep ^ftp | wc -l"

    if [ "$var" = "0" ]; then
    echo "endereço ftp"
    else
    echo "endereço http"
    fi


    valew
    Aquela parte do read tá certo?
    bom...

    nao fiz o script apenas aqui no post sem antes testar...

    e aqui funfÔ q foi uma bl'z..

    valew

  10. #10

    Padrão Pegar início de URL em ShellScript

    Citação Postado originalmente por lucianogf
    cara..

    o q vc pode fazer é um if e la vai com mais alguma coisa e colocar da seguinte forma:

    #!/bin/bash

    url=
    read
    var="echo {$url} | grep ^ftp | wc -l"

    if [ "$var" = "0" ]; then
    echo "endereço ftp"
    else
    echo "endereço http"
    fi


    valew
    Não ta funcionando por causa do seguinte:
    ao invés da variável var ficar com um falor 0 ou 1, o valor dela ta ficando assim:
    echo {ftp://ftp.suse.com} | grep ^ftp | wc -l

  11. #11

    Padrão Pegar início de URL em ShellScript

    Citação Postado originalmente por aledr
    Citação Postado originalmente por lucianogf
    cara..

    o q vc pode fazer é um if e la vai com mais alguma coisa e colocar da seguinte forma:

    #!/bin/bash

    url=
    read
    var="echo {$url} | grep ^ftp | wc -l"

    if [ "$var" = "0" ]; then
    echo "endereço ftp"
    else
    echo "endereço http"
    fi


    valew
    Não ta funcionando por causa do seguinte:
    ao invés da variável var ficar com um falor 0 ou 1, o valor dela ta ficando assim:
    echo {ftp://ftp.suse.com} | grep ^ftp | wc -l
    cara...

    estranho.. (dificil falar isso em informática)

    aqui antes de postar fiz o teste e funfou sem problemas...

    vou dar uma checada aqui no q pode ser mudado neste script e depois posto...

    valew

  12. #12

    Padrão Pegar início de URL em ShellScript

    cara...

    acho q ontem eu devo ter sonhado este script dando certo.. heheeheh

    fui testar novamente aqui e nao funfa nem metade.. hahahah

    rapaiz... a locura tá saindo do controle...

    mais to vendo aqui o q pode ser feito...

    valew

  13. #13

    Padrão Pegar início de URL em ShellScript

    agora sim tá certo...

    foi mal ae galera, pior de tudo foi insistir q tava funcionando, deveria ser o sono qdo fiz o script...

    ----------------------
    #!/bin/bash

    read url
    var=`echo $url | grep ^ftp | wc -l`

    if [ "$var" != "0" ]; then
    echo "endereço ftp"
    else
    echo "endereço http"
    fi
    ------------------------

    isso é só um básico...

    pois o usuario pode digitar qualquer coisa, é possível fazer algo mais complexo, pra poder distinguir qualquer coisa q o usuario digite, até mesmo endereços inválidos...

    qualquer coisa tamo ae..

    valew

  14. #14

    Padrão Pegar início de URL em ShellScript

    Nem se preocupe... to aprendendo ainda!!
    Valew pela ajuda!

  15. #15

    Padrão Pegar início de URL em ShellScript

    Citação Postado originalmente por aledr
    Nem se preocupe... to aprendendo ainda!!
    Valew pela ajuda!
    eu tbm cara...

    a cada dia aprendo uma coisa e esqueço de outra...

  16. #16
    Avenger
    Visitante

    Padrão Pegar início de URL em ShellScript

    dá prá fazer tipo um
    Código :
    read $url
    proto="$(echo "${url}" | cut -f1 -d":")"
    case $proto in
     ftp|Ftp|FTp|FTP|fTP|ftP|fTp|FtP)
      echo eh um ftp
     ;;
     http|Http|HTtp|HTTp|HTTP|hTTP|htTP|httP|HTtP|HtTP|HttP|hTtP|htTp)
      echo eh um http
     ;;
    esac

    (não testei também, só testei a sintaxe do case) mas a idéia é essa mesma e dá prá fazer o truque com essa idéia sim.

  17. #17

    Padrão Pegar início de URL em ShellScript

    Citação Postado originalmente por lucianogf
    agora sim tá certo...

    foi mal ae galera, pior de tudo foi insistir q tava funcionando, deveria ser o sono qdo fiz o script...

    ----------------------
    #!/bin/bash

    read url
    var=`echo $url | grep ^ftp | wc -l`

    if [ "$var" != "0" ]; then
    echo "endereço ftp"
    else
    echo "endereço http"
    fi
    ------------------------

    isso é só um básico...

    pois o usuario pode digitar qualquer coisa, é possível fazer algo mais complexo, pra poder distinguir qualquer coisa q o usuario digite, até mesmo endereços inválidos...

    qualquer coisa tamo ae..

    valew
    Deixa eu encher as paciência mais um pouco...
    Qual a função do "!=" e do "^" no "^ftp"?

  18. #18

    Padrão Pegar início de URL em ShellScript

    Citação Postado originalmente por aledr
    Deixa eu encher as paciência mais um pouco...
    Qual a função do "!=" e do "^" no "^ftp"?
    ¨ != 0 ¨ quer dizer = diferente de 0 (zero)
    ¨grep ^ftp¨ = filtre tudo que comece com ftp

    valew

  19. #19

    Padrão Pegar início de URL em ShellScript

    ahh..

    o ^ é pra indicar o começo...

    ae se vc quisesse pegar alguma coisa mas pelo fim seria o $

    ex.:

    num arquivo temos vários dados, e alguns deles terminam com ¨fim¨ outros com ¨meio¨,

    pra filtrar os que terminam com ¨meio¨ seria assim:

    grep meio$

    valew