The UNIX and Linux Forums  


Go Back   UNIX e Linux Forum > Inizio Forum > Shell scripting e di programmazione
.
google unix.com



Shell scripting e di programmazione Pubblica domande su KSH, CSH, SH, Bash, Perl, PHP, sed, awk e da altri script di shell e linguaggi di scripting shell qui.

Più di UNIX e Linux Forum Argomenti potreste trovare utili
Filo Thread Starter Forum Risposte Ultimo Post
per loop problema mdap Shell scripting e di programmazione 3 08-16-2008 02:27 PM
Problema Loop namishtiwari UNIX for Dummies Domande & Risposte 4 07-15-2008 12:01 PM
awk e loop problema invinzin21 Shell scripting e di programmazione 3 02-04-2008 09:54 PM
Problema ciclo dhananjaysk Shell scripting e di programmazione 3 03-31-2006 02:05 PM
problema con il ciclo while mridula Di programmazione ad alto livello 1 12-11-2005 11:44 AM

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 09-22-2008
aliahsan81 aliahsan81 is offline
Utente Registrato
  
 

Iscriviti Data: Sep 2008
Interventi: 62
Question Loop problema con un altro problema

Hi TUTTI
Sono greping qualche cosa da un file, una cosa è "/ var / www / html" / var / www / esempio "e quindi sul suo mostrando come e quando utilizzare questo echo.i desidera passare ciascuno di loro in una loop per processing.Like iniziare con / var / www / html poi 2a e così uno
Ma che non funziona come qualsiasi iead i dare uno da un valore.
Il mio codice

docroot \u003d $ (grep-H DocumentRoot / etc / httpd / conf.d / *. conf | awk-F '' '(print $ 3)' | sort-u | uniq)
doccount \u003d $ (grep-H DocumentRoot / etc / httpd / conf.d / *. conf | awk-F '' '(print $ 3)' | sort-u | uniq | wc-l)

per ((i \u003d 0; i <\u003d $ doccount; + + i))
fare
confd \u003d "docroot $ \ n"
echo $ confd
trovare $ confd tipo d-perm / o \u003d w | letto mentre DIR
fare
fare qualche cosa

# # fatto mentre fatto
done # # per fare
  #2 (permalink)  
Old 09-22-2008
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programmatore, autore
  
 

Iscriviti Data: marzo 2007
Luogo: Toronto, Canada
Interventi: 2.365
Citazione:
Originalmente inviato da aliahsan81 View Post
Hi TUTTI
Sono greping qualche cosa da un file, una cosa è "/ var / www / html" / var / www / esempio "e quindi sul suo mostrando come e quando utilizzare questa eco.

Si prega di utilizzare l'inglese in questo forum. Scrivi "tu", non "u".
Citazione:
Voglio passare ogni uno di loro in un ciclo di processing.Like iniziare con / var / www / html poi 2a e così uno
Ma che non funziona come qualsiasi iead i dare uno da un valore.

Che cosa significa "non funziona" significa? Che cosa succede? Cosa vuoi che accada?
Citazione:
Il mio codice

Si prega di inserire all'interno del codice [code].
Citazione:
Codice:
docroot=$(grep -H DocumentRoot /etc/httpd/conf.d/*.conf |
 awk -F' ' '{ print $3 }'| sort -u | uniq)

Non è necessario uniq; Hai già rimosso con duplicati sort-u.

In realtà, non avete bisogno di sorta, sia. Esso può essere fatto con awk solo:


Codice:
docroot=$(grep -H DocumentRoot /etc/httpd/conf.d/*.conf |
 awk -F' ' '!x[$3]++ { ++n } END { print n }'

Citazione:
Codice:
doccount=$(grep -H DocumentRoot /etc/httpd/conf.d/*.conf |
 awk -F' ' '{ print $3 }'| sort -u | uniq | wc -l)

for (( i=0; i <= $doccount; ++i ))

E 'più sicuro di attenersi a standard di sintassi:


Codice:
i=0
while [ $i -le $doccount ]
do
   : whatever
   i=$(( $i + 1 ))
done

Citazione:

Codice:
 do
        confd="$docroot\n"

Codice:
        confd="$docroot"

Citazione:

Codice:
echo $confd
        find $confd -type d -perm /o=w | while read DIR
do
do some thing 

done ## while done
done ##for done
  #3 (permalink)  
Old 09-23-2008
aliahsan81 aliahsan81 is offline
Utente Registrato
  
 

Iscriviti Data: Sep 2008
Interventi: 62
Grazie per la risposta, non di lavoro, quando i mezzi passare un valore alla variabile in loop $ confd, non mi processo invece considerare in linea con tutte le root.I documento mostra il mio codice, e se eseguire i staticelly utilizzando / var / www / html è uscita bene, ma quando i posti
in loop problema occourced.I mostra di uscita per entrambi.



Codice:
#!/bin/bash
let test=0

abc="/var/www/html"
docroot=$(grep -H DocumentRoot /etc/httpd/conf.d/*.conf | awk -F' ' '{ print $3 }'| sort -u | uniq)
doccount=$(grep -H DocumentRoot /etc/httpd/conf.d/*.conf | awk -F' ' '{ print $3 }'| sort -u | uniq | wc -l)
#i=0
#while [ $i -le $doccount ]
# do
#    confd="$docroot\n"
#echo $confd
    find $abc -type d -perm /o=w | while read DIR
    do

    test=$(cd "$DIR"; ls -A *.html *.php  2>/dev/null | wc -l)

        if [ "$test" != "0" ]
                   then


            echo "DIR Found WITH FILES"$DIR $test
           fi


        if [ `ls -a "$DIR" | wc -l` -le 2 ]
    
                   then

            echo "Writable_dir Empty"$DIR
            fi


    done
#i=$(( $i + 1 ))
#done


        count=$(find /var/www/html/ -type f -perm /o=w | grep -i ".htaccess"| wc -l )

        find "$abc" -type f -perm /o=w | grep -i ".htaccess" | awk  -F. '{ print $1 }' | while read this

        do
        echo "_htaccess_is_Writable"$this
        done
 
Output with static docroot

DIR Found WITH FILES/var/www/html/test3 4
DIR Found WITH FILES/var/www/html/test3/abc 2
Writable_dir Empty/var/www/html/abc
DIR Found WITH FILES/var/www/html/test/abc 1
DIR Found WITH FILES/var/www/html/test2 1


Output with duynamic Docroot


"/var/www/html" "/var/www/test/www.example.com" "/var/www/www.example.com"\n
find: "/var/www: No such file or directory
find: "/var/www/test: No such file or directory
find: "/var/www: No such file or directory
"/var/www/html" "/var/www/test/www.example.com" "/var/www/www.example.com"\n
find: "/var/www: No such file or directory
find: "/var/www/test: No such file or directory

  #4 (permalink)  
Old 01-07-2009
BubbaJoe's Avatar
BubbaJoe BubbaJoe is offline
Utente Registrato
  
 

Iscriviti Data: ottobre 2008
Località: San Luigi
Interventi: 153
Il codice è un po 'di sbagliato nel tuo assegnando più directory al docroot e aggiungendo una nuova riga. Non è necessario per la nuova linea. Imposta confd a "$ docroot" e non "docroot $ \ n". Quando si esegue la ricerca $ confd sarà messo in una riga vuota della riga di comando in cui non appartiene.

# while [$ i-le $ doccount]
# Fare
# Confd \u003d "docroot $ \ n"
# echo $ confd

confd \u003d "$ docroot"
trovare $ confd tipo d-perm / o \u003d w | letto mentre DIR

che sarebbe

find / var / www / html / var / www / test / www.example.com / var / www / www.example.com tipo d-perm / o \u003d w | letto mentre DIR
Closed Thread

Segnalibri

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 è 03:15 PM.


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