What is the error in this script?

Martini002 yesterday at 17:18. 1 answers, 0 views
bash

I'm getting this error:

1
/home/nacion/mcparley/VentaParley.sh: line 163: unexpected EOF while looking for matching `"'
/home/nacion/mcparley/VentaParley.sh: line 166: syntax error: unexpected end of file

This is the script:

#!/bin/sh
#
# screen -S bun -X stuff ""`echo -ne '\015'`
# 
# CONSIDERACIONES
# CUANDO EL PAIS TIENE 2 PALABRAS, SE DEBEN UNIR ESAS PALABRAS
# SINO LO TOMA COMO UN REGISTRO EXTRA
# 

# sudo bash /home/nacion/mcparley/VentaParley.sh [skw,sur2,sky2] [din/tok]
# sudo bash /home/nacion/mcparley/VentaParley.sh skw din

archivoComp="/home/nacion/$1/plugins/BossShop/shops/$2ApoComp.yml"

case "$2" in
  din)
    TipoMoneda="Money"
  ;;  
  tok)
    TipoMoneda="Points"
  ;;  
  *)
  echo "Error: Usar un numero"
esac


rm -rf $archivoComp

#Consultamos las competencias activas
compActivas=($(mysql -D parley --user=root -- ="easypassword" -s -N -e "Select ID, NombreCompetencia From Competencias Where Activa = \"1\";"))

echo "1"

if [ ${#compActivas[@]} -gt 0 ] 
then
  echo "3"
  #Hay competencias activas
  #Creamos el archivo de competencias y cargamos la cabecera
  echo > "$archivoComp"

  echo "ShopName: $2ApoComp" >> "$archivoComp"
  echo "DisplayName: '&e&lSelecciona un torneo'" >> "$archivoComp"
  echo "signs:" >> "$archivoComp"
  echo "  text: '[newshop]'" >> "$archivoComp"
  echo "  NeedPermissionToCreateSign: true" >> "$archivoComp"
  echo "shop:" >> "$archivoComp"
  echo "  atras:" >> "$archivoComp"
  echo "    MenuItem:" >> "$archivoComp"
  echo "    - name:&e&lVolver al menu anterior" >> "$archivoComp"
  echo "    - amount:1" >> "$archivoComp"
  echo "    - type:NETHER_STAR" >> "$archivoComp"
  echo "    RewardType: Shop" >> "$archivoComp"
  echo "    Reward: lobDin" >> "$archivoComp"
  echo "    PriceType: Free" >> "$archivoComp"
  echo "    Price: 10.0" >> "$archivoComp"
  echo "    Message: ''" >> "$archivoComp"
  echo "    ExtraPermission: ''" >> "$archivoComp"
  echo "    InventoryLocation: 27" >> "$archivoComp"

  #${compActivas[]}

  N=0
  cPos=1
  for i in "${compActivas[@]}" 
  do
    #El vector compActivas tendra ocupadas al menos 2 tuplas, en caso de que al menos exista 1 competencia activa    
    #Agregamos la competencia al archivo de archivoComp
    echo "  $2Comp${compActivas[$(($N))]}:" >> "$archivoComp"
    echo "    MenuItem:" >> "$archivoComp"
    echo "    - lore:&7Ver los partidos#&7Programados para hoy#En el torneo>#&b${compActivas[$(($N+1))]}" >> "$archivoComp"
    echo "    - name:&e&l${compActivas[$(($N+1))]}" >> "$archivoComp"
    echo "    - amount:1" >> "$archivoComp"
    echo "    - type:DIAMOND" >> "$archivoComp"
    echo "    RewardType: Shop" >> "$archivoComp"
    echo "    Reward: $2Comp${compActivas[$(($N))]}" >> "$archivoComp"
    echo "    PriceType: Free" >> "$archivoComp"
    echo "    Price: 10.0" >> "$archivoComp"
    echo "    Message: ''" >> "$archivoComp"
    echo "    ExtraPermission: ''" >> "$archivoComp"
    echo "    InventoryLocation: $cPos" >> "$archivoComp"

    #Asignamos el archivo nuevo al que se agregaran los partidos disponibles
    archivoApoComp="/home/nacion/$1/plugins/BossShop/shops/$2Comp${compActivas[$(($N))]}.yml"

    #Lo borramos y reconstruimos para asegurarnos de una copia limpia
    rm -rf $archivoApoComp
    echo > "$archivoApoComp"

    #Ya creamos el item que aparecera en el menu de competencias activas

    #Buscamos los partidos programados para la fecha, pertenecientes a esta competencia    

    # IDS de partidos del dia que aun no han cerrado
    # Se cierran 1 hora antes que inicie el partido, en el peor de los casos, por una mala sincronizacion, se cerraran maximo a 30 min de empezar
    IDSPartidos=($(mysql -D parley --user=root -- ="easypassword" -s -N -e "Select ID From Partidos Where Fecha = CURDATE() and DATE_ADD(NOW(), INTERVAL 2 HOUR) < CONCAT(Fecha,' ',Hora) and Competencia = \"${compActivas[$(($N))]\";"))

    pPos=0
    if [ ${#IDSPartidos[@]} -eq 0 ]; 
    then
      echo "No hay partidos disponibles para el dia de hoy para la competencia ${compActivas[$(($N))]"
    else      
      echo "Se encontraron partidos disponibles para hoy, iniciando procedimiento de venta"

      for i in "${IDSPartidos[@]}" 
      do
        let "pPos= $pPos + 1"

        # Consultamos los datos de cada apuesta
        resultado=($(mysql -D parley --user=root -- ="easypassword" -s -N -e "Select * From Partidos Where ID = \"$i\";"))

        Logro="${resultado[4]}"
        if [ $Logro -gt 0 ] #Es el positivo o "batacazo" paga mas
        then
          Favorito="&cNO"
          # Usamos bc que es la calculadora, y se pueden usar decimales
          # Cambio de 100 a 200 el divisor de este, ya que la ganacia seria mucha
          Ganancia=$(bc <<< "scale = 2; ((($Logro/100)+1)*100)-100")
          # quitamos los decimales
          Ganancia=${Ganancia/.*/}
        else  # Es el negativo o favorito Paga menos
          Favorito="&aSI"   
          Logro=$(($Logro*-1))

          # Ganancia=$((((100/$Logro)+1)*100))
          Ganancia=$(bc <<< "scale = 2; (((100/$Logro)+1)*100)-100")
          # echo "$Ganancia"    
          Ganancia=${Ganancia/.*/} 
        fi

        #Cargamos el archivo de los partidos para esta competencia

        echo "  Apuesta$i:" >> "$archivoApoComp"
        echo "    MenuItem:" >> "$archivoApoComp"
        echo "    - lore:&7Datos del Partido#&7Fecha>&b ${resultado[1]}#&7Hora>&b ${resultado[2]} (-3 GMT Hora Argentina)#&7ID>&b ${resultado[0]}#&7Logro>&b ${resultado[4]}#&7Torneo> &b${resultado[5]}#&7*LNC-Apuestas*#&dGanancia>#&7Por cada 100$ Ganas> &b$Ganancia$#&eClick Aqui para comprar un boleto de apuesta#&eCompra todos los que quieras" >> "$archivoApoComp"
        echo "    - name:&b&l100 &7&la &c&l${resultado[3]}" >> "$archivoApoComp"
        echo "    - amount:1" >> "$archivoApoComp"
        echo "    - type:PAPER" >> "$archivoApoComp"
        echo "    RewardType: Item" >> "$archivoApoComp"
        echo "    Reward:" >> "$archivoApoComp"
        echo "    - lore:&7Fecha Juego> &b${resultado[1]}#&7Hora Juego> &b${resultado[2]} &7(-3 GMT) Hora Argentina#&7Moneda> &b$2#&7IDPartido> &b${resultado[0]}#&7Competencia> &b${resultado[5]}" >> "$archivoApoComp"
        echo "    - name:&c&lApuesta de 100 al equipo ${resultado[3]}" >> "$archivoApoComp"
        echo "    - amount:1" >> "$archivoApoComp"
        echo "    - type:PAPER" >> "$archivoApoComp"
        echo "    PriceType: $TipoMoneda" >> "$archivoApoComp"
        echo "    Price: 100.0" >> "$archivoApoComp"
        echo "    Message: '&eApostaste 100 por> &c${resultado[3]}&e para el dia> &b${resultado[1]}&e a las> &b ${resultado[2]} (-3 GMT Hora Argentina) &7en el torneo> &b${resultado[5]}'" >> "$archivoApoComp"
        echo "    ExtraPermission: ''" >> "$archivoApoComp"
        echo "    InventoryLocation: $pPos" >> "$archivoApoComp"

      done  
    fi

    let "N= $N + 1"  
  done
else
  #No hay competencias activas
  echo "No hay competencias activas"
fi

echo "2"

#Recargamos el boss   
screen -S $1 -X stuff "bs reload"`echo -ne '\015'`
exit 0

1 Answers


Gino 06/10/2016.
IDSPartidos=($(mysql -D parley --user=root -- ="easypassword" -s -N -e "Select ID From Partidos Where Fecha = CURDATE() and DATE_ADD(NOW(), INTERVAL 2 HOUR) < CONCAT(Fecha,' ',Hora) and Competencia = \"${compActivas[$(($N))]}\";")

Towards the end of the line you're missing a }. It's the 6th character back.


HighResolutionMusic.com - Download Hi-Res Songs

1 Alan Walker

Diamond Heart flac

Alan Walker. 2018. Writer: Alan Walker;Sophia Somajo;Mood Melodies;James Njie;Thomas Troelsen;Kristoffer Haugan;Edvard Normann;Anders Froen;Gunnar Greve;Yann Bargain;Victor Verpillat;Fredrik Borch Olsen.
2 Sia

I'm Still Here flac

Sia. 2018. Writer: Sia.
3 Cardi B

Taki Taki flac

Cardi B. 2018. Writer: Bava;Juan Vasquez;Vicente Saavedra;Jordan Thorpe;DJ Snake;Ozuna;Cardi B;Selena Gomez.
4 Little Mix

Woman Like Me flac

Little Mix. 2018. Writer: Nicki Minaj;Steve Mac;Ed Sheeran;Jess Glynne.
5 Halsey

Without Me flac

Halsey. 2018. Writer: Halsey;Delacey;Louis Bell;Amy Allen;Justin Timberlake;Timbaland;Scott Storch.
6 Lady Gaga

I'll Never Love Again flac

Lady Gaga. 2018. Writer: Benjamin Rice;Lady Gaga.
7 Bradley Cooper

Shallow flac

Bradley Cooper. 2018. Writer: Andrew Wyatt;Anthony Rossomando;Mark Ronson;Lady Gaga.
8 Bradley Cooper

Always Remember Us This Way flac

Bradley Cooper. 2018. Writer: Lady Gaga;Dave Cobb.
9 Kelsea Ballerini

This Feeling flac

Kelsea Ballerini. 2018. Writer: Andrew Taggart;Alex Pall;Emily Warren.
10 Mako

Rise flac

Mako. 2018. Writer: Riot Music Team;Mako;Justin Tranter.
11 Dewain Whitmore

Burn Out flac

Dewain Whitmore. 2018. Writer: Dewain Whitmore;Ilsey Juber;Emilio Behr;Martijn Garritsen.
12 Avril Lavigne

Head Above Water flac

Avril Lavigne. 2018. Writer: Stephan Moccio;Travis Clark;Avril Lavigne.
13 Khalid

Better flac

Khalid. 2018. Writer: Charlie Handsome;Jamil Chammas;Denis Kosiak;Tor Erik Hermansen;Mikkel Stoleer Eriksen;Khalid.
14 Lady Gaga

Look What I Found flac

Lady Gaga. 2018. Writer: DJ White Shadow;Nick Monson;Mark Nilan Jr;Lady Gaga.
15 Deep Chills

Run Free flac

Deep Chills. 2018.
16 Dynoro

In My Mind flac

Dynoro. 2018. Writer: Georgi Kay;Feenixpawl;Ivan Gough.
17 Charli XCX

1999 flac

Charli XCX. 2018. Writer: Charli XCX;Troye Sivan;Leland;Oscar Holter;Noonie Bao.
18 NCT 127

Regular (English Version) flac

NCT 127. 2018.
19 Lukas Graham

Love Someone flac

Lukas Graham. 2018. Writer: Don Stefano;Morten "Rissi" Ristorp;Morten "Pilo" Pilegaard;Jaramye Daniels;James Alan;David LaBrel;Lukas Forchhammer Graham.
20 Rita Ora

Let You Love Me flac

Rita Ora. 2018. Writer: Rita Ora.

Language

Popular Tags