The UNIX and Linux Forums  
Hallo und herzlich Willkommen aus den Vereinigten Staaten, die UNIX-und Linux-Foren! Vielen Dank für Ihren Besuch und die Teilnahme an unserem Global Community.

Go Back   Die UNIX-und Linux-Foren > Top Foren > Shell Programmierung und Scripting
.
Google unix.com



Shell Programmierung und Scripting Post Fragen zu ksh, csh, sh, bash, Perl, PHP, sed, awk und anderen Shell-Skripte und Shell-Scripting-Sprachen hier.

Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
for-Schleife Problem mdap Shell Programmierung und Scripting 3 08-16-2008 02:27 PM
Loop-Problem namishtiwari UNIX for Dummies Questions & Answers 4 07-15-2008 12:01 PM
awk-und Loop-Problem invinzin21 Shell Programmierung und Scripting 3 02-04-2008 09:54 PM
Loop-Problem dhananjaysk Shell Programmierung und Scripting 3 03-31-2006 02:05 PM
Problem mit der while-Schleife mridula High-Level-Programmierung 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 Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 09-22-2008
aliahsan81 aliahsan81 is offline
Registrierte Nutzer
  
 

Join Date: Sep 2008
Beiträge: 62
Question Loop-Problem mit einem weiteren Problem

Hi All
Ich bin greping einige Sache aus einer Datei, einige ist "/ var / www / html" / var / www "/ Beispiel" und so auf seine Anzeigen wie folgt aus, wenn u echo.i wollen jeder von ihnen in einem Schleife für processing.Like mit / var / www / html, dann 2. und so ein
Aber dass nicht jeder iead, wie ich eins nach dem anderen Wert.
Mein Code

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)

for ((i \u003d 0; i <\u003d $ doccount; + + i))
tun
confd \u003d "$ docroot \ n"
echo $ confd
find $ confd-type d-perm / o \u003d w | while read DIR
tun
machen, was

done # # während getan
done # # für getan
  #2 (permalink)  
Old 09-22-2008
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell-Programmierer, Autor
  
 

Join Date: März 2007
Ort: Toronto, Kanada
Beiträge: 2361
Zitat:
Zitat von aliahsan81 View Post
Hi All
Ich bin greping einige Sache aus einer Datei, einige ist "/ var / www / html" / var / www "/ Beispiel" und so auf seine Anzeigen wie folgt aus, wenn u echo.

Bitte benutzen Sie Englisch in diesem Forum. Schreiben Sie "Sie", nicht "u".
Zitat:
Ich möchte jedem einzelnen von ihnen in einer Schleife für processing.Like mit / var / www / html, dann 2. und so ein
Aber dass nicht jeder iead, wie ich eins nach dem anderen Wert.

Was bedeutet "nicht" bedeuten? Was ist geschehen? Was wollen Sie passieren?
Zitat:
Mein Code

Bitte legen Sie Code in [code].
Zitat:
Code:
docroot=$(grep -H DocumentRoot /etc/httpd/conf.d/*.conf |
 awk -F' ' '{ print $3 }'| sort -u | uniq)

Sie brauchen nicht uniq, Sie haben bereits entfernt Dubletten mit sort-u.

In der Tat, man braucht keine Art, entweder. Es kann mit awk allein:

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

Es ist sicherer, an Standard-Syntax:

Code:
i=0
while [ $i -le $doccount ]
do
   : whatever
   i=$(( $i + 1 ))
done
Zitat:
Code:
 do
        confd="$docroot\n"
Code:
        confd="$docroot"
Zitat:
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
Registrierte Nutzer
  
 

Join Date: Sep 2008
Beiträge: 62
Vielen Dank für die Antwort, funktioniert nicht bedeutet, wenn ich auf einen Wert in Schleife Variable $ confd ich nicht verarbeiten, anstatt sie der Ansicht, online mit allen das Dokument root.I zeigen Ihnen meinen Code, und wenn ich staticelly die Verwendung von / var / WWW / HTML-Ausgabe ist in Ordnung, aber wenn ich
Im Loop-Problem occourced.I zeigen Ihnen Ausgang für beide.


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
Registrierte Nutzer
  
 

Join Date: Oct 2008
Ort: St. Louis
Beiträge: 153
Ihr Code ist ein wenig falsch es in Ihrer Zuordnung mehrere Verzeichnisse zu den docroot und einen Zeilenumbruch. Kein Bedarf für die neue Linie. Set confd nach "$ docroot", nicht "docroot $ \ n". Wenn Sie die find $ confd es wird ein Zeilenumbruch in der Befehlszeile, wenn sie nicht gehören.

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

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

was

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

Lesezeichen

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 06:32 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0