Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 01/04/2017, à 18: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, à 18:52)


Fanfantasy7
pc fixe : Linux Mint
pc portable : Ubuntu LTS

Hors ligne

#2 Le 01/04/2017, à 18: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, à 19: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, à 21: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