26. april 2002 - 15:10Der er
15 kommentarer og 2 løsninger
Bourne Shell og reg.exp. validering af input
Jeg sidder og laver lidt BourneShell scripting og er rendt panden mod muren i den absolut mest simple del af scriptet *dooh*
Det jeg prøver er, at validere at indholdet af $1 er mindst 6 tegn og A-Z eller 0-9 - men det virker ikke helt ? Nogen der har et vink med en vognstang ?
# Check weather loginname is valid (least 6 chars, a-z 0-9) VALIDNAME=`grep -c "^[a-zA-Z0-9]$" $1` if [ $VALIDNAME -ne 0 ]; then echo "[a-z0-9] is allowed !" exit 1 fi
problemet lige nu er, at greb ret meget ignorerer enhver indtastning... Alt hvad jeg kan læse om greb viser den virker genialt på filer, men ikke enkelte variabler ?
grep tager input enten fra filer eller fra standard input. Du skal mao sørge for at indholdet af $1 enten kommer til at stå i en fil, eller direkte bliver sendt til grep's standard input. Det sidste må kunne opnås ved at gøre noget i retning af
erik >> awk vil vores lærer kunne lide, men synes til en "oneliner" at grep måtte være det bedre valg - også mest for at lære om det kunne lade sig gøre. Det er rent "nussen" om opgaven, men det skal jo til... og så er jeg jo nysgerrig...
-c argumentet bruger jeg på baggrund af at den skulle vise antal linier der matcher, jeg ville forvente 0 eller 1 (boolean) på denne ?!?
erik >> med det jeg har læst om fyren, tror jeg det her er noget han fisler ud af ærmet en søndag eftermiddag mens han læser søndagsberlingeren... ( læs : jeg ville gerne blot tilnærmelsesvist nærme mig hans uddannelsesniveau )
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.