Sitat:
Originally Posted by fpmurphy
Humm, jeg har sett på denne shell script et par ganger og riper hodet.
Du angir variabelen "q" til en streng
men du forventer å kunne subtrahere et tall fra det
Hvordan er dette ment å fungere?
|
Hei,
Jeg Revisited det altfor og riper hodet også! Det er en feil i skriptet ... hvis
firstslice er større enn
lastslice Den vil ikke fungere. Så jeg har prøvd et annet tråklesting hjelp awk.
som en påminnelse, dette er hva jeg vil gjøre, jeg har en liste over filer:
Code:
sl40_z11.70.txt
sl41_z11.40.txt
sl42_z11.10.txt
sl43_z10.80.txt
Jeg ønsker å sløyfe gjennom disse filene holde merking intakt. For eksempel, jeg vil gjøre i et enkelt script
Code:
cp sl40_z11.70.txt sl40_z11.70.dat
cp sl41_z11.40.txt sl41_z11.40.dat
cp sl42_z11.10.txt sl42_z11.10.dat
cp sl43_z10.80.txt sl43_z10.80.dat
Jeg har hundrevis av disse filene, og jeg trenger å utføre annet ikke-trivielle operasjoner på dem. Problemet er bash ikke gjenkjenner flytende tall, så jeg kan ikke loop over dem.
min nye skriptet er:
Code:
#!/bin/sh
#
echo -n "....enter first slice number....."; read firstslice
echo -n "....enter last slice number....."; read lastslice
#
echo -n "....enter first Z-coordinate position....."; read zpos
#sliceDiff=0.3
#
loopNumber=$[($lastslice - $firstslice)+1]
echo "loopNumber is $loopNumber"
echo firstslice no. is $firstslice
for ((k=$firstslice;k<=$lastslice; k++)); do
r=$[k]
echo "$firstslice $r $zpos" | awk '{print $3-(($2-$1)*0.3)}'
#echo "$firstslice $r $zpos" | awk '{print $i}' sl$2_z[$3-(($2-$1)*0.3)].txt > xxxx.dat
done
Så kjører dette skriptet og gå inn på ledetekster "40", "43", "11.70"
looper over 4 filer pent. Men jeg vet ikke hvordan jeg skal innlemme utdataene i siste linje av skriptet slik at awk gjenkjenner filnavn.
Eventuelle hjelpe ville være mye verdsatt.
Skål