The UNIX and Linux Forums  


Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
for loop problem mdap Shell Programmering og Scripting 3 08-16-2008 02:27 PM
Loop Problem namishtiwari UNIX for dummyer Spørgsmål & svar 4 07-15-2008 12:01 PM
awk og sløjfe problem invinzin21 Shell Programmering og Scripting 3 02-04-2008 09:54 PM
loop Problem dhananjaysk Shell Programmering og Scripting 3 03-31-2006 02:05 PM
Problemet med, mens loop mridula Højtstående Programmering 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 Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 09-22-2008
aliahsan81 aliahsan81 is offline
Registreret Bruger
  
 

Join Date: Sep 2008
Stillinger: 62
Question Loop problem med endnu et problem

Hi all
Jeg greping nogle ting fra en fil, nogle ting er "/ var / www / html" / var / www "/ eksempel" og så på sit viser gerne det, når u bruge echo.i vil passere hver af dem i en kredsløb for processing.Like starter med / var / www / html så 2. og så en
Men det fungerer ikke nogen iead hvordan jeg give én efter én værdi.
Min kode

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

for ((i \u003d 0; i <\u003d $ doccount; + + i))
gøre
confd \u003d "$ docroot \ n"
echo $ confd
finde $ confd-type d-perm / o \u003d w | while read DIR
gøre
gøre nogle ting

gjort # # samtidig gjort
gjort # # for udført
  #2 (permalink)  
Old 09-22-2008
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programmør, forfatter
  
 

Join Date: Mar 2007
Beliggenhed: Toronto, Canada
Indlæg: 2.372
Citat:
Oprindeligt Indsendt af aliahsan81 View Post
Hi all
Jeg greping nogle ting fra en fil, nogle ting er "/ var / www / html" / var / www "/ eksempel" og så på sit viser gerne det, når u bruge ekko.

Brug venligst engelsk i dette forum. Skrive "du", ikke "u".
Citat:
Jeg ønsker at give hver af dem i en løkke for processing.Like starter med / var / www / html så 2. og så en
Men det fungerer ikke nogen iead hvordan jeg give én efter én værdi.

Hvad betyder "ikke virker" mean? Hvad sker? Hvad ønsker du at ske?
Citat:
Min kode

Sæt kode inde [CODE] tags.
Citat:
Code:
docroot=$(grep -H DocumentRoot /etc/httpd/conf.d/*.conf |
 awk -F' ' '{ print $3 }'| sort -u | uniq)

Du behøver ikke Entydige; Du allerede har fjernet dubletter med sortere-u.

Faktisk behøver du ikke at sortere, enten. Det kan gøres med awk alene:


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

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

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

Det er mere sikkert at holde sig til standard syntaks:


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

Citat:

Code:
 do
        confd="$docroot\n"

Code:
        confd="$docroot"

Citat:

Code:
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
Registreret Bruger
  
 

Join Date: Sep 2008
Stillinger: 62
Tak for svaret, virker ikke hjælp, når jeg passerer en værdi i sløjfe til Variabel $ confd, kan jeg ikke behandle det i stedet den overveje online med alle de dokument root.I vise dig min kode, og hvis jeg løber staticelly bruger / var / www / html output er fint, men når jeg sætte
i sløjfe problem occourced.I vise dig udgang til begge.



Code:
#!/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
Registreret Bruger
  
 

Join Date: oktober 2008
Beliggenhed: St Louis
Stillinger: 153
Din kode er lidt galt i dit tildele flere mapper til docroot og tilføje en ny linje. Ikke behov for den nye linje. Sæt confd til "$ docroot" ikke "$ docroot \ n". Når du gør det finder $ confd det vil lægge en ny linje i kommandolinje, hvor det ikke hører hjemme.

#, mens [$ i-le $ doccount]
# Do
# Confd \u003d "$ docroot \ n"
# echo $ confd

confd \u003d "$ docroot"
finde $ confd-type d-perm / o \u003d w | while read DIR

som ville være

find / var / www / html / var / www / test / www.example.com / var / www / www.example.com-type d-perm / o \u003d w | while read DIR
Closed Thread

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 10:29 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0