The UNIX and Linux Forums  
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.

Go Back   UNIX og Linux Forums > Top Forums > UNIX for Advanced & ekspertbrukere
.
google unix.com



UNIX for Advanced & ekspertbrukere Expert-til-ekspert. Lær avanserte UNIX UNIX kommandoer, Linux operativsystem, systemadministrasjon, programmering, Shell, Shell Scripts, Solaris, Linux, HP-UX, AIX, OS X, BSD.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
Bourne Shell script - loggen for brukere loggin på og av noodlesoup Shell programmering og Skripting 14 09-08-2006 11:30
Bourne: Hvordan påkalle et alias fra et shell script techshots Shell programmering og Skripting 2 06-04-2006 01:38
cd fra en Bourne Shell Script - Please Help fawqati Shell programmering og Skripting 10 05-25-2006 04:26
Bourne Shell Script dmhonor914 UNIX for Dummies Spørsmål og svar 2 12-10-2003 12:25
Bourne shell script psrinivas Shell programmering og Skripting 2 12-06-2001 03:38

Closed Thread
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 10-18-2001
dezithug dezithug is offline
Registrert bruker
  
 

Bli Dato: Oct 2001
Sted: Los Angeles
Innlegg: 6
Question Bourne shell script trenger hjelp kan du?

Jeg har denne oppgaven .. og jeg gal dette skriptet, men det er noe galt med den .. hvis noen kan fortelle meg .. watz skjer ... jeg ville sette pris på det .. thnx på forhånd ..
Code:
count=1
val=$2
op=$1
ans=0
if [ $op = "-e" -o $op = "-o" ]
then
        if [ $op = "-e" ]
        then
                while [ $count -le $val ]
                do
                        ans=`expr $count % 2`
                        if [ $ans -eq 0 ]
                        then
                        echo "$count \c "
                        count=`expr $count + 1`
                        fi
                done
        elif [ $op = "-o" ]
        then
                while [ $count -le $val ]
                do
                        ans=`expr $count % 2`
                        if [ $ans -ne 0 ]   
                        then
                        echo "$count \c "
                        count=`expr $count + 1`
                        fi
                done
        fi
else
        while [ $count -le $val ]
        do
                echo "$count \c "
                count=`expr $count + 1`
        done
fi
Thnx again

lagt til kode koder for lesbarhet - oombera

Sist endret av oombera; 02-20-2004 på 11:51..
  #2 (permalink)  
Old 10-19-2001
LivinFree's Avatar
LivinFree LivinFree is offline Forum Advisor  
Goober Extraordinaire
  
 

Bli Dato: juli 2001
Sted: Portland, OR, USA
Innlegg: 1584
En ting jeg la merke til er at hvis du bruker Linux, bør du endre ekko uttalelser til "echo-e". Det vil la \ c operatører arbeid.

Hva er det du prøver å gjøre her? Jeg har en tøff tid til å lese manuset (se, det er sent, og jeg har vært å koble litt overtid på toppen av min normalt lange dager ...). Det ser ut som du kan bruke noen kommentarer ...

Har du lente seg hvordan man bruker "case" ennå? I så fall kan du se inn som bruker den - du kan kutte mye av forvirrende "hvis"-utsagn ut av det ...
  #3 (permalink)  
Old 10-19-2001
dezithug dezithug is offline
Registrert bruker
  
 

Bli Dato: Oct 2001
Sted: Los Angeles
Innlegg: 6
vel se .. Jeg bruker SCO UNIX .. nd .. alt funker .. fine .. unntatt i loopen noe iz galt .. når jeg prøver å kjøre det .. det vil juss keep on going ... eller annen grunn ... nd sin Soo forvirrende ..

vi har ikke lært CASE ennå .. Jeg vet at det ville være lettere .. men .. i donno hvordan du bruker CASE ..

hvis yoiu fortsatt kan tenke på noe .. dat ville være gr8

Thnx
  #4 (permalink)  
Old 10-23-2001
LivinFree's Avatar
LivinFree LivinFree is offline Forum Advisor  
Goober Extraordinaire
  
 

Bli Dato: juli 2001
Sted: Portland, OR, USA
Innlegg: 1584
Vel, først av, hjalp det meg mye å se på koden med innrykk i det:
Code:
#!/bin/ksh
count=1 
val=$2 
op=$1 
ans=0 
if [ $op = "-e" -o $op = "-o" ] 
then 
     if [ $op = "-e" ] 
     then 
     while [ $count -le $val ] 
     do 
     ans=`expr $count % 2` 
          if [ $ans -eq 0 ] 
          then 
          echo "$count \c " 
          count=`expr $count + 1` 
          fi 
     done 
     elif [ $op = "-o" ] 
     then 
     while [ $count -le $val ] 
     do 
     ans=`expr $count % 2` 
          if [ $ans -ne 0 ] 
          then 
          echo "$count \c " 
          count=`expr $count + 1` 
          fi 
     done 
     fi 
else 
while [ $count -le $val ] 
do 
echo "$count \c " 
count=`expr $count + 1` 
done 
fi
Nå er det første jeg vanligvis prøver når jeg prøver å figureout hva min skriptet gjør for å legge til et «set-x"-linjen øverst i skriptet. Det vil echo ut hvert trinn skallet utfører, slik at du kan se hva som skjer ...

Så Måten jeg løp manuset, (jeg vil gi et eksempel på hva jeg tror jeg så prøver å bruke "-e 4" option) den fikk fast i en sløyfe på:
+ Ans \u003d 1
+ '[' 1-eq 0 ']'
+ '[' 1-le 4 ']'
+ + Expr 1% 2
Ok, interessant ... la oss se på dette. Så hva skriptet gjør det steg for steg:
Code:
     if [ $op = "-e" ]                       # This is true in our case
     then 
     while [ $count -le $val ]          # while 1 is less than or equal to 4
     do 
     ans=`expr $count % 2`         # ans = 1 % 2, or ans = 1
          if [ $ans -eq 0 ]                  # if ans (1) = 0, then continue... nope - can't continue
          then 
          echo "$count \c " 
          count=`expr $count + 1` 
          fi                                         # We're done, time to loop while waiting for ans to equal 0
Ser du hva du problemet? Tips: $ ANS vil alltid lik 1 i dette tilfellet

Her er en annen (Messier, men mer info) måte å gjøre det:
Code:
if [ "$op" = "-e" -o "$op" = "-o" ]
echo " if [ $op = -e -o $op = -o ]"
        then
echo "     then"
        if [ "$op" = "-e" ]
echo "     if [ $op = -e ] "
        then
echo "     then"
        while [ "$count" -le "$val" ]
echo "     while [ $count -le $val ] "
        do
echo "     do"
        ans=`expr $count % 2`
echo "     ans=`expr $count % 2` "
                if [ "$ans" -eq "0" ]
echo "          if [ $ans -eq 0 ] "
                then
echo "          then"
                echo -e "$count \c "
echo "          echo -e $count \c"
                count=`expr $count + 1`
echo "          count=`expr $count + 1`"
På denne måten kan du se på skriptet i action ... Det ser nesten som om den ikke vet når de skal gå ut, ikke sant?

Det kan hende du trenger litt nytt design, men jeg tror du er ganske mye på rett spor

(Ooh, og jeg appologize, byttet jeg noen av de "echo" 's til "echo-e" s, siden jeg så på dette på et Linux-system ...

Betyr dette hjelpe noe?
  #5 (permalink)  
Old 10-24-2001
dezithug dezithug is offline
Registrert bruker
  
 

Bli Dato: Oct 2001
Sted: Los Angeles
Innlegg: 6
se .. jeg fremdeles donno Watz .. feil .. men .. wat nå er jeg Kjøpers å gjøre iz .. Break da programmet i å lil programz .. og .. Trin bare e-alternativet .. bare for det .. og glemme andre alternativer .. håper at vil bidra lol .. men .. thnx nwyz .. Jeg prøvde .. koden din .. men likevel gjorde ikke få .. wat happend .. Jeg vet det .. the modulus .. ting screwed up ..
ahh .. lol .. Jeg har vært jobber på dette som 3 weekz .. nå .. lol. og faller på november 8nde .. jeg har .. noe mer tid ..


thnx .. igjen skjønt .. Jeg setter pris på det
  #6 (permalink)  
Old 10-24-2001
dezithug dezithug is offline
Registrert bruker
  
 

Bli Dato: Oct 2001
Sted: Los Angeles
Innlegg: 6
takk veryyyyy muchhhhh!!

jeg endelig fikk den .. å arbeide whoooooooooooooooohooooooooooooooooooooooooooo .. lol .. damn .. dat tok meg .. lang NUFF. .. lol .. et så enkelt program. nd tok meg .. bout 3 weekz .. damn ..

nwy .. z. thnx for hjelpen bro .. Jeg setter pris på den ... veldig mye ..



Pz out!

Thnx Again!
  #7 (permalink)  
Old 10-24-2001
LivinFree's Avatar
LivinFree LivinFree is offline Forum Advisor  
Goober Extraordinaire
  
 

Bli Dato: juli 2001
Sted: Portland, OR, USA
Innlegg: 1584
Right on! Kan du legge inn løsningen på det for oss å se?
Closed Thread

Hugseliste

Tags
linux

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 11:32.


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