The UNIX and Linux Forums  

Go Back   UNIX e Linux Forum > Inizio Forum > UNIX e avanzata per utenti esperti
.
google unix.com



UNIX e avanzata per utenti esperti Expert-to-Expert. Ulteriori avanzata UNIX, comandi UNIX, Linux, Sistemi Operativi, System Administration, Programmazione, Shell, Shell Script, Solaris, Linux, HP-UX, AIX, OS X, BSD.

Più di UNIX e Linux Forum Argomenti potreste trovare utili
Filo Thread Starter Forum Risposte Ultimo Post
Bourne Shell script - log per gli utenti loggin on e off noodlesoup Shell scripting e di programmazione 14 09-08-2006 11:30 PM
Bourne: Come invocare un alias all'interno di uno script di shell techshots Shell scripting e di programmazione 2 06-04-2006 01:38 AM
cd da un Bourne Shell Script - Please Help fawqati Shell scripting e di programmazione 10 05-25-2006 04:26 AM
Bourne Shell Script dmhonor914 UNIX for Dummies Domande & Risposte 2 12-10-2003 12:25 PM
Bourne shell script psrinivas Shell scripting e di programmazione 2 12-06-2001 03:38 PM

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 Cerca in questo Thread Rate Thread Modalità di visualizzazione
  #1 (permalink)  
Old 10-18-2001
dezithug dezithug is offline
Utente Registrato
  
 

Iscriviti Data: ottobre 2001
Ubicazione: Los Angeles
Interventi: 6
Question Bourne shell script bisogno di aiuto per favore?

ho questo incarico .. i pazzi e questo script, ma c'è qualcosa che non va con esso .. se qualcuno può dirmi .. watz in corso ... i would appreciate it .. thnx in anticipo ..

Codice:
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 nuovamente

aggiunta di tag per la leggibilità del codice - oombera

Ultimo a cura di oombera; al 02/20/2004 11:51 AM..
  #2 (permalink)  
Old 10-19-2001
LivinFree's Avatar
LivinFree LivinFree is offline Forum Advisor  
Goober Extraordinaire
  
 

Iscriviti Data: luglio 2001
Località: Portland, OR, Stati Uniti d'America
Interventi: 1.584
Una cosa che ho fatto notare è che se si sta usando Linux, si deve cambiare l'eco dichiarazioni a "echo-e". Che consentono la \ c operatori lavoro.

Che cosa stai cercando di fare qui? Sto avendo una dura tempo di leggere la sceneggiatura (guardare, è in ritardo, e mi sono stati di collegare alcune ore di lavoro straordinario in alto della mia normalmente lunghi giorni ...). Sembra che tu possa utilizzare alcuni commenti ...

Avete inclinato come usare "caso" ancora? Se è così, si può utilizzare in che - si potrebbe tagliare un sacco di confusione tra il "se" le dichiarazioni di là ...
  #3 (permalink)  
Old 10-19-2001
dezithug dezithug is offline
Utente Registrato
  
 

Iscriviti Data: ottobre 2001
Ubicazione: Los Angeles
Interventi: 6
ben vedere .. i 'm utilizzando SCO UNIX .. nd .. tutto funziona .. bene .. fatta eccezione per il ciclo iz qualcosa di sbagliato .. quando si tenta di eseguire .. si Juss tenere in corso ... per qualche motivo ... secondo il suo soo confusione ..

non abbiamo ancora imparato CASO .. So che sarebbe più facile .. ma .. i Donno come utilizzare CASO ..

yoiu se è ancora in grado di pensare a qualcosa .. dat sarebbe GR8

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

Iscriviti Data: luglio 2001
Località: Portland, OR, Stati Uniti d'America
Interventi: 1.584
Beh, in primo luogo al largo, mi ha aiutato molto a guardare il codice con trattino in essa:

Codice:
#!/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

Ora, la prima cosa che di solito quando si cerca di provare figureout quello che sta facendo il mio script è di aggiungere un "set-x" linea nella parte superiore dello script. Ciò eco di ogni fase della shell è il rendimento, in modo da poter vedere cosa sta succedendo ...

Così, il modo in cui ho eseguito lo script, (I'll dare un esempio di ciò che ho visto credo che tentare di utilizzare l'opzione "-e 4" opzione) si è rimasti bloccati in un ciclo a:
Ans \u003d 1 +
+ '[' 1-eq 0 ']'
+ '[' 1-il 4 ']'
Expr + + 1% 2
Ok, interessante ... guardiamo a questo. Quindi, ciò che sta facendo lo script passo per passo:

Codice:
     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

Non si vede ciò che si è problema? Suggerimento: $ ans sarà sempre pari a 1 in questo caso

Ecco un altro (Messier, ma più info) modo di farlo:

Codice:
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`"

In questo modo, potrete guardare il vostro script in azione ... E 'quasi come se non sa quando uscire, giusto?

Potrebbe essere necessario un po 'di ri-progettazione, ma penso che sei molto sul binario giusto

(Ooh, e mi appologize, ho cambiato alcune delle "eco" 's per "echo-e"' s, sin da quando ero alla ricerca in questo su un sistema Linux ...

Se questo aiuto qualsiasi?
  #5 (permalink)  
Old 10-24-2001
dezithug dezithug is offline
Utente Registrato
  
 

Iscriviti Data: ottobre 2001
Ubicazione: Los Angeles
Interventi: 6
v. .. ancora i Donno watz .. sbagliato .. ma .. wat adesso sto a fare iz Trin .. pausa da programma per lil programz .. e .. Trin solo opzione-e .. solo che per .. e dimenticare le altre opzioni .. speranza che li aiuterà lol .. ma .. thnx nwyz .. ho provato .. il codice .. ma ancora didnt get .. wat happend .. So che la sua .. il modulo .. cosa avvitato fino ..
ahh .. lol .. I've been workin su questo, come per 3 weekz .. ora .. un sacco di risate. e la sua causa a nov. 8. .. Ho .. un po 'di tempo ..


thnx .. nuovamente se .. I appreciate it
  #6 (permalink)  
Old 10-24-2001
dezithug dezithug is offline
Utente Registrato
  
 

Iscriviti Data: ottobre 2001
Ubicazione: Los Angeles
Interventi: 6
la ringrazio veryyyyy muchhhhh!

infine i got it .. a lavorare whoooooooooooooooohooooooooooooooooooooooooooo .. lol .. damn .. dat mi ha portato .. nuff lungo. .. lol .. quali un semplice programma. secondo me ha preso .. bout 3 weekz .. damn ..

nwy z. .. thnx bro per il vostro aiuto .. Mi rendo conto che ... molto ..



Pz. out!!

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

Iscriviti Data: luglio 2001
Località: Portland, OR, Stati Uniti d'America
Interventi: 1.584
Right on! Puoi pubblicare il tuo soluzione per noi vedere?
Closed Thread

Segnalibri

Tag
linux

Thread Tools Cerca in questo Thread
Cerca in questo Thread:

Ricerca Avanzata
Modalità di visualizzazione Vota questo thread
Vota questo thread:

Distacco regolamento
Tu non può post nuovo thread
Tu non può inviare una risposta
Tu non può postare allegati
Tu non può modificare i tuoi post

BB codice è Su
Smilies sono Su
[IMG] codice Su
Codice HTML è Chiuso
Trackbacks sono Su
Pingbacks sono Su
Refbacks sono Su




Tutti gli orari sono GMT -4. La data di oggi è 02:03 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traduzioni Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX e Linux Forum Content Copyright © 1993-2009. Tutti i diritti Reserved.Ad di gestione da RedTyger

Contenuti pertinenti URL da vBSEO 3.2.0