Onderstaand script zou een aantal directories door moeten werken en de permissies van httpdocs moeten vergelijken met de variabele OK. Om dat te doen wil ik het resultaat van de gefilterde listing opslaan in TEST maar dit gaat niet goed. Het commando zelf geeft exact de juiste informatie maar dit wordt niet opgeslagen in TEST.
Resulteerd b.v. in:
Terwijl er had moeten staan:
Wat doe ik verkeerd? Gaat dit niet goed omdat deze truc niet werkt als je iteratief door een aantal gegevens heen loopt?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| #!/bin/bash
OK="drwxr-xr-x"
ls -d 1*| while read LINE ; do
TEST=`ls -l $LINE/webspace | grep httpdocs | awk '{print $1}'`
ls -l $LINE/webspace | grep httpdocs | awk '{print $1}' ;
if [ "$TEST" = "$OK" ] ; then
echo $TEST $OK
echo $LINE = OK
else
echo $TEST $OK
echo chmod 755 $LINE/webspace/httpdocs
fi
done |
Resulteerd b.v. in:
code:
1
2
3
| drwxr-x--- drwxr-xr-x chmod 755 106158/webspace/httpdocs |
Terwijl er had moeten staan:
code:
1
2
3
| drwxr-x--- drwxr-xr-x drwxr-x--- chmod 755 106158/webspace/httpdocs |
Wat doe ik verkeerd? Gaat dit niet goed omdat deze truc niet werkt als je iteratief door een aantal gegevens heen loopt?