|
|
|
|
site google
|
|||||||
| Fóruns | Registar | Blog | Man Pages | Fórum Regimento | Ligações | Álbuns | FAQ | Usuários | Calendário | Pesquisa | Today's Posts | Mark Forums Read |
| Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui. |
![]() |
|
|
Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
|||
|
Problema muito irritante - Please Help
Hey Guys Eu tenho um problema muito chato com expressões regulares! Neste momento acredito que o comando 'ler' está causando o problema, devido ao transporte, uma vez que coloca o seu regresso feito. Tenho um ciclo contínuo até que a entrada está correcto: (Após a leitura inicial declaração) Código:
while [ 0 ]
do
if [[ "$word" == [a-z]+ ]]
then
word=$(echo $word | tr "[A-Z]" "[a-z]")
encrypted=$(echo $word | tr "[a-z]" "-")
display $encrypted $word
break
else
echo "Please enter a word consisting of only the letters a-z."
read word
fi
doneWhats em negrito é o problema. Cada vez que chega a ele, nada é permitido! Nem mesmo se a entrada é totalmente válida como em: abcd O que eu quero fazer é aceitar apenas caracteres az e nada mais - sem espaços quer. Em teoria, deve funcionar, no entanto, na prática Eu realmente acredito que a 'ler' comando está a dar-me o problema. Talvez um chop-esque função é necessária, como o de um perl. Espero que vocês possam ajudar! Obrigado. -reservatório é BASH |
| Links Patrocinados | ||
|
|
|
|||
|
Sim, ela parece tão inútil ... Ou a sintaxe está errada ou os caras por trás do desenvolvimento do BASH tenho presente um pouco mal ...
Quero dizer que eu posso fazer é individualmente verificar cada personagem, mas sua excessiva código - 5 linhas em comparação com 1. Portanto, se os peritos pode me dar alguns conselhos, seria muito apreciado. Obrigado. |
|
||||
|
Oi. O suplente sintaxe parece funcionar: Código:
#!/bin/bash3 - # @(#) s1 Demonstrate extended glob matching. # See man bash "Pattern matching" and extglob shopt. echo "(Versions displayed with local utility \"version\")" version >/dev/null 2>&1 && version =o $(_eat $0 $1) x="abc" if [[ $x == [a-z]+ ]] then echo " Matched trailing +." fi shopt -s extglob if [[ $x == +([a-z]) ]] then echo " Matched leading +." fi exit 0 Produção: Código:
% ./s1 (Versions displayed with local utility "version") Linux 2.6.11-x1 GNU bash 3.00.16(1)-release Matched leading +. Muitas felicidades ... cheers, DRL |
|
|||
|
Ei DRL,
Isso não funciona no meu fim, possivelmente porque o reservatório é im bash3 mas não sei bem a diferença entre ele e bash. Tentei usar o reverso sintaxe, mas não existe sorte, eu tenho alguns erros ao fazê-lo. Faz pareço eu vou ter que usar alguns mais código - apenas parece tão bobo que este pequeno bug (se thats o que ele realmente é) está a causar-me dor lol. Obrigado pela vossa ajuda embora. |
|
|||
|
GNU bash, versão 3.1.17 (1)-release (i686-redhat-linux -gnu)
Copyright (C) 2005 Free Software Foundation, Inc. É isso o que eu estou usando no momento. |
| Links Patrocinados | ||
|
|
![]() |
| Marcadores |
| Tags |
| linux, regex, expressões regulares |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|
Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
|
||||
| Fio | Thread Starter | Fórum | Respostas | Última postagem |
| problema com o comando dd ou talvez AFS problema | Anta | Programação Shell Script e | 0 | 08-25-2006 11:10 |
| annoying vi puxão palavra + apagar todos pergunta | umen | UNIX para Dummies Perguntas & Respostas | 4 | 03-20-2006 08:46 |
| Problema SSH auth problema | budrito | UNIX & avançada para usuários experientes | 1 | 03-17-2004 10:12 |
| um problema muito chato | Stormpie | UNIX para Dummies Perguntas & Respostas | 2 | 04-24-2002 01:29 |