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!!
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://
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... :oops:
Valew pela ajuda!
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
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?
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
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
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?
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
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
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
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
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
Pegar início de URL em ShellScript
Nem se preocupe... to aprendendo ainda!!
Valew pela ajuda!
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...
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.
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"?
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
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