The UNIX and Linux Forums  


Go Back   UNIX og Linux Forums > Top Forums > Shell programmering og Skripting
.
google unix.com



Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
For Loop med Strykere som parametere kadishmj Shell programmering og Skripting 6 10-06-2008 04:57
Mens Loop Logic sambakamba Shell programmering og Skripting 4 09-02-2008 05:15
Forespørsel om å endre skriptet til liste flere parametere for V_fieldid variable Sammy Shell programmering og Skripting 0 03-30-2008 09:08
Parametere i loop mgirinath Shell programmering og Skripting 3 03-18-2008 10:20
Grep på flere parametere kingofprussia UNIX for Dummies Spørsmål og svar 5 05-21-2007 09:31

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 09-30-2008
ankimo ankimo is offline
Registrert bruker
  
 

Bli Dato: Sep 2008
Innlegg: 23
for loop logikk med flere parametere

hei, unix veiviserne,

Jeg har et spørsmål om logikken i mitt indre for loop nedenfor. først, hva jeg prøver å gjøre er å skrive et skript som heter create_account som automatisk oppretter mysql kontoer. Brukeren kan gi en bruker_navn eller group_id som et argument (og skriptet kan ta flere argumenter). bruker_navn argumenter bør bare bli lagt til en user_file.

gruppe-IDer skal være i forhold til en fil som inneholder en liste over group_ids med flere user_names per id. hvis gruppen id eksisterer, så grip alle brukere, og føyer til user_file. hvis gruppen id ikke finnes, print "gruppe id ikke gyldig".

selvfølgelig det første jeg må gjøre er å validere argument - hvis et nummer av en viss type, jeg antar det en group_id. else, er det en bruker_navn. btw, "is_num" er en funksjon for å validere Hvis argumentet er et tall (og dermed en group_id).


----------------------------------------------
få arg

  • Hvis argumentet er et tall
    • Deretter validere group_id
    • hvis num er ugyldig group_id,
      • deretter skrive ut "gruppe id ikke gyldig"
    • hvis num er gyldig group_id
      • deretter analysere group_id_file og hente brukere fra 4de feltet
  • ellers
    • føyer til user_file
----------------------------------------------


min kode fungerer bra når jeg har bare ett argument, og det spiller ingen rolle om det argumentet er gyldig group_id, en ugyldig group_id eller bruker_navn. men når jeg bruker flere parametere, er problemer med koden er:

  1. bruker_navn argumenter får gjennom indre for loop og ikke bør, fordi de ikke passerer is_num fungere kriteriene
  2. kommandoer med flere parametere kjøre alle argumenter flere ganger
  • Hvis jeg for eksempel si ...
    Code:
    create_acct valid_num invalid_num

... Jeg får en liste med alle gyldige brukere ganger 2 Jeg lurer på om noen har tid til å peke meg i riktig retning. takk for hjelpen.




Code:
for arg; do
  if is_num $arg; then

#----------------------------------------------

   for num; do
      a=$(grep "^c$num:" group_file)

      if [ -z "$a" ]; then
        print "Group ID " $num "is not in group file."
        continue
      fi

      f4=$(echo $a | cut -d: -f4)

      if [ -z "$f4" ]; then
        print "Group ID " $num "does not have any users."
      else
        print $f4 | tr ',' '\n' >> user_list
        continue
      fi
    done

#----------------------------------------------

  else
    echo $arg >> user_list
  fi
done

 

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 04:26.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0