Ik heb diverse documenten op mijn systeem en om ze allemaal uniek (en manageble te houden) heb ik het volgende systeem gemaakt: een document heeft een vaste prefix, bv CNF (confidentual) en een 4 digit nr (uniek) dus:
CNF-0021 blaat.doc
Het script is helemaal af, afhankelijk van je cmd-line maakt hij hardlinks naar de documenten, of maakt hij een lijst van documenten. Dat laatste is een probleem.
Wat is mijn probleem? Ik probeer met NR=$DOCNR steeds de grootste waarde eruit te 'slopen' dat lukt, maar op het moment dat hij aan een nieuwe loop begint, is de waarde weer gereset. Sterker nog, als hij helemaal klaar is met lopen krijg ik als antwoord: NR=1
Wat klopt hier niet...
dezelfde code maar nu "kaal"
CNF-0021 blaat.doc
Het script is helemaal af, afhankelijk van je cmd-line maakt hij hardlinks naar de documenten, of maakt hij een lijst van documenten. Dat laatste is een probleem.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| ..
else
NR=0
for PREFIX in "CNF PRJ DOC PRV"
do
find $SCANDIR -regex '.*/'$PREFIX'-[0-9][0-9][0-9][0-9] .*' -print | while read FILENAME
do
DOCNAME=`echo $FILENAME | \
sed 's/.*\/\(.*\)/\1/g' | \
awk '{print $0}'`
DOCNR=`echo $DOCNAME | \
sed 's/-/ /' | \
awk '{print $2}'`
if test $NR -le $DOCNR ; then
NR=$DOCNR
fi
echo "$NR - $DOCNAME"
done
echo "$NR"
done
let NR=$NR+1
echo -e "\nNext logical Nr:\t\t???-$NR"
fi |
Wat is mijn probleem? Ik probeer met NR=$DOCNR steeds de grootste waarde eruit te 'slopen' dat lukt, maar op het moment dat hij aan een nieuwe loop begint, is de waarde weer gereset. Sterker nog, als hij helemaal klaar is met lopen krijg ik als antwoord: NR=1
Wat klopt hier niet...
dezelfde code maar nu "kaal"
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| NR=0
for PREFIX in "1 2 3 4"
do
# een while lus, doet er effe niet toe
do
docnr=8
if test $NR -le $DOCNR ; then
NR=$DOCNR
fi
echo "$NR" # hier zegt ie 8, goed
done
echo "$NR" # hier mompelt ie 0
done
let NR=$NR+1
# en hier is NR dus 1 |