![]() |
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Regler | Links | Albums | FAQ | Members List | Kalender | Søgning | Dagens Stillinger | Mark Forums Read |
| Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her. |
Mere UNIX og Linux Forum Emner du måske kan finde Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Last Post |
| afprøve en string ... | Kaminski | UNIX for dummyer Spørgsmål & svar | 2 | 02-12-2008 05:37 AM |
| Med Regex Spliting strengen i Alphanumeric og Numeriske del | ozgurgul | Shell Programmering og Scripting | 1 | 06-30-2007 10:52 AM |
| Alfanumerisk streng Operations | lakshmikanth | UNIX for dummyer Spørgsmål & svar | 3 | 01-05-2007 06:55 AM |
| string-test? | hedrict | UNIX for dummyer Spørgsmål & svar | 9 | 03-29-2002 03:57 PM |
| matching alfanumerisk streng | sskb | Shell Programmering og Scripting | 4 | 12-12-2001 10:48 AM |
![]() |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
|
|
||||
|
Okay jeg vil lade brugernes input-rum samt
![]() Jeg har en mental blokering. Jeg har gjort et par søgninger, men havent fundet noget, som jeg forstår (den holder af: alpha: og awk). Dybest set ønsker jeg at give brugeren mulighed for at indtaste noget tekst, som vil gå ned som et område inden for en flad fil (som er delimeted af:). Jeg ønsker at begrænse dette til 50 tegn (jeg tror, jeg kan bruge skrift-Z50 til dette) Jeg vil bare az, AZ, (mellemrum) og tal. Hvad er den bedste måde at validere input? |
|
||||
|
En måde er at bruge tr til at fjerne uønskede tegn typer. -DC fjerner alt undtagen dem char typer, du angiver. [: alnum;] er alfanumerisk, så hvis du tjekke længden af strengen det bør være uændret, hvis det kun indeholder de char typer, du ønsker.
Code:
# t is the input string, ck is a variable to check the contents of t
t="thisisa555ctest"
ck=$( echo "$t" | tr -dc '[:alnum:]')
if [[ ${#t} -eq ${#ck} ]]; then
echo "ok"
else
echo "not ok"
exit 1
fi
# t is all good chars at this point
# check length of t
if [[ ${#t} -gt 50 ]]; then
echo "not ok too long"
fi
|
|
||||
|
Tror jeg har krakket det
Jeg bruger denne kode. De prøver jeg har gjort, synes at arbejde.
mens sandt gøre klar echo "Indtast tekst: \ c" læse t sag $ t + ([az] | [Å] | [0-9] | [ ''])) echo test strengen er okay brække ;; *) echo test string ikke okay sove 2 ;; ESAC gjort |
![]() |
| Bogmærker |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|