Pages : 1
#1 Le 01/04/2017, à 17:45
- fanfantasy7
script diviser un décimal
bonsoir,
j'aimerai diviser des décimals
Voici une partie du script
lat=$(($lat1+($lat2/60)))
lon=$(($lon1+($lon2/60)))
echo "decimal"
echo $lat
echo $lon
voici l'erreur
./fgfs_test_parking.sh: line 51: 49+(15.146381/60): syntax error: invalid arithmetic operator (error token is ".146381/60)")
je pense qu'il faut faire avec ça
bc <<< "scale = 6; $lat1+($lat2/60)"
mais comment mettre le résultat de bc dans une variable ?
je ne sais pas comment faire malgré mes recherches sur internet
Dernière modification par fanfantasy7 (Le 01/04/2017, à 17:52)
Fanfantasy7
pc fixe : Linux Mint
pc portable : Ubuntu LTS
Hors ligne
#2 Le 01/04/2017, à 17:56
- pingouinux
Re : script diviser un décimal
Bonjour,
Si j'ai bien compris, essaye :
lat=$(bc -l <<<"$lat1+$lat2/60")
Hors ligne
#3 Le 01/04/2017, à 18:14
- fanfantasy7
Re : script diviser un décimal
merci
ça fonctionne avec ça
lon=$(bc <<< "scale = 6; $lon1+($lon2/60)")
mon second soucis et que le xml que je parse peux changer et quand c'est sur plusieur lignes ça ne fonctionne plus
celui là c'est ok
<?xml version="1.0"?>
<groundnet>
<version>1</version>
<parkingList>
<Parking index="0" type="gate" name="GA_Ramp_1" lat="N49 15.156674" lon="E2 31.528919" heading="155.18" radius="44" pushBackRoute="None" airlineCodes="" />
<Parking index="1" type="gate" name="GA_Ramp_2" lat="N49 15.146381" lon="E2 31.495493" heading="155.18" radius="44" pushBackRoute="None" airlineCodes="" />
<Parking index="2" type="gate" name="GA_Ramp_6" lat="N49 15.136854" lon="E2 31.463903" heading="155.18" radius="44" pushBackRoute="None" airlineCodes="" />
<Parking index="3" type="gate" name="GA_Ramp_7" lat="N49 15.128470" lon="E2 31.432411" heading="155.18" radius="44" pushBackRoute="None" airlineCodes="" />
<Parking index="4" type="ga" name="GA_Ramp_1" lat="N49 15.155602" lon="E2 31.498126" heading="155.18" radius="10" pushBackRoute="None" airlineCodes="" />
<Parking index="5" type="ga" name="GA_Ramp_2" lat="N49 15.141472" lon="E2 31.460779" heading="155.17" radius="10" pushBackRoute="None" airlineCodes="" />
<Parking index="6" type="ga" name="GA_Ramp_6" lat="N49 15.129812" lon="E2 31.424617" heading="155.18" radius="10" pushBackRoute="None" airlineCodes="" />
<Parking index="7" type="ga" name="GA_Ramp_7" lat="N49 15.120149" lon="E2 31.387246" heading="155.18" radius="10" pushBackRoute="None" airlineCodes="" />
</parkingList>
</groundnet>
mais pas celui là
<?xml version="1.0"?>
<groundnet>
<version>1</version>
<frequencies>
<AWOS>12712</AWOS>
<GROUND>11810</GROUND>
<GROUND>11955</GROUND>
<GROUND>12160</GROUND>
<GROUND>12167</GROUND>
<GROUND>12177</GROUND>
<GROUND>12180</GROUND>
<GROUND>12192</GROUND>
<GROUND>12197</GROUND>
<TOWER>11865</TOWER>
<TOWER>11925</TOWER>
<TOWER>12090</TOWER>
<TOWER>12360</TOWER>
<APPROACH>11815</APPROACH>
<APPROACH>11985</APPROACH>
<APPROACH>12115</APPROACH>
<APPROACH>12582</APPROACH>
<APPROACH>12642</APPROACH>
<DEPARTURE>12435</DEPARTURE>
<DEPARTURE>12657</DEPARTURE>
<DEPARTURE>13120</DEPARTURE>
<DEPARTURE>13337</DEPARTURE>
</frequencies>
<parkingList>
<Parking index="0"
type="gate"
name="B"
number="08"
lat="N49 0.334"
lon="E02 33.777"
heading="198"
radius="20"
pushBackRoute="973"
airlineCodes="FIN,AMC,TUA,JAT,AUA,AUI,CTN,LZB,BRU,MGX,CSA,BTI,AHY" />
<Parking index="1"
type="gate"
name="B"
number="12"
lat="N49 0.326"
lon="E02 33.745"
heading="173"
radius="20"
pushBackRoute="901"
airlineCodes="FIN,AMC,TUA,JAT,AUA,AUI,CTN,LZB,BRU,MGX,CSA,BTI,AHY" />
mon script
#!/bin/bash
declare -A lat2
if [ -z $1 ]; then
fgfs/./run_fgfs.sh --fg-aircraft=/home/chris/flightgear/aircraft --show-aircraft
else
aoci=$2
aoci1=`echo ${aoci:0:1}`
aoci2=`echo ${aoci:1:1}`
aoci3=`echo ${aoci:2:1}`
echo $aoci
echo $aoci1
echo $aoci2
echo $aoci3
echo "result"
result=`cat /home/chris/.fgfs/TerraSync/Airports/$aoci1/$aoci2/$aoci3/$aoci.groundnet.xml | grep index=\"1\"`
echo $result
lat1=`echo $result | awk -F" " '{ print $5}'`
lat2=`echo $result | awk -F" " '{ print $6}'`
lon1=`echo $result | awk -F" " '{ print $7}'`
lon2=`echo $result | awk -F" " '{ print $8}'`
heading=`echo $result | awk -F" " '{ print $9}'`
lat1=`echo $lat1 | sed 's/\lat="N//'`
lat1=`echo $lat1 | sed 's/\lat="S//'`
lon1=`echo $lon1 | sed 's/\lon="E//'`
lon1=`echo $lon1 | sed 's/\lon="O//'`
lon2=`echo $lon2 | sed 's/\"//'`
lat2=`echo $lat2 | sed 's/\"//'`
heading=`echo $heading | sed 's/heading=\"//' | sed 's/\"//'`
echo "lat1"
echo $lat1
echo "lat2"
echo $lat2
echo "lon1"
echo $lon1
echo "lon2"
echo $lon2
echo "heading"
echo $heading
#convertir lat et lon N43 39.362820" lon="E7 12.151500"
# x + y /60
# 43,656047 7,202525
lat=$(bc <<< "scale = 6; $lat1+($lat2/60)")
lon=$(bc <<< "scale = 6; $lon1+($lon2/60)")
echo "decimal"
echo $lat
echo $lon
fgfs/stable/run_fgfs.sh --fg-aircraft=/home/chris/flightgear/aircraft --fg-scenery=/home/chris/flightgear/Le_Mans/ --callsign=fantasy7 --multiplay=out,10,mpserver01.flightgear.org,5000 --timeofday=noon --disable-ai-traffic --disable-random-objects --enable-terrasync --aircraft=$1 --lat=$lat --lon=$lon --heading=$heading
fi
Fanfantasy7
pc fixe : Linux Mint
pc portable : Ubuntu LTS
Hors ligne
#4 Le 01/04/2017, à 20:07
- Watael
Re : script diviser un décimal
ah, si seulement il existait des parsers xml, comme xmlint, xmlstarlet, ou xsltproc !
voire un langage comme python qui pourrait récupérer les données d'un xml, et aussi opérer des calculs, ou des transformations.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
Pages : 1