Linux en Espanol
 
Problema con script en bash (tema #24467)
Publicar nuevo tema  Responder al tema    Foros de discusión -> Programación
Autor Mensaje
gensuruthebomber
Forista
Registrado: 2012-08-16
Mensajes: 4

Publicado: 2012-08-16 00:28:21    Asunto: Problema con script en bash

Hola, tengo un problema al correr el siguiente script

#! /bin/bash
#This script write a the ptraj scripts that are intended to determine the distances between every water molecule of the stripped residue and every residue
#Create a directory to save the ptraj scripts that determine distance
mkdir dist_scripts
#This index goes for the frames
for i in {1..40}
do
#Funcionality between the index and the frame required.
#frame=$((${i}*500))
#line="trajin frm_stp_edt+h_${frame}.pdb 1 1 1"
#echo ${line}>>dist_scripts/dist_frm_${frame}.ptraj
wat_molec=$(awk -v f=${frm} '{temp=f; print temp;}' count_wat.log)
#This index goes for the residues
for j in {1..8}
do
# res=${j}
# #This index goes for the number of water molecules in the file
sup_lim=$((9+$((${wat_molec}))))
for m in {1..3} #$(seq 1 $((${sup_lim})))
do
# line="distance dist :${res} :${k} dist_frm${frm_${frame}_res_${res}_wat_${k}.log"
# echo ${line}>>dist_scripts/dist_frm_${frame}.ptraj
done
done
#line="go"
#echo ${line}>>dist_scripts/dist_frm_${frame}.ptraj
done

Como se dar?n cuenta, la mayor parte del script est? como comentario, eso lo hice como una forma de encontrar el error, lo a?sle hasta el loop m?s interno, el error es el siguiente

linea 23: error sint?ctico cerca del elemento inesperado done

Tambi?n notaran que mi objetivo es que ese loop recorra desde 1 hasta sup_lim (actualmente est? como comentario), si me pudieran indicar tambien si eso est? bien, estar? my agradecido.
Gracias de antemano
miguelgf
Forista


Registrado: 2006-12-28
Mensajes: 621

Publicado: 2012-08-16 00:41:28    Asunto: Re: Problema con script en bash

Hola.
Este trozo:
[code:1:c0cfd62c78]for m in {1..3} #$(seq 1 $((${sup_lim})))
do
#line="distance dist :${res} :${k} dist_frm${frm_${frame}_res_${res}_wat_${k}.log"
#echo ${line}>>dist_scripts/dist_frm_${frame}.ptraj
done[/code:1:c0cfd62c78]
da este error
[code:1:c0cfd62c78]
linea 23: error sint?ctico cerca del elemento inesperado done
[/code:1:c0cfd62c78]
porque el bucle est? vac?o (las l?neas comentadas no cuentan).
Puedes borrar el resto del script, dejar solo el bucle y seguir? dando el mismo error.

Eliminando los comentarios, realmente el bucle es:
[code:1:c0cfd62c78]for m in {1..3}
do
done[/code:1:c0cfd62c78]
Ah? se v? m?s claro que est? vac?o.

Saludos.
gensuruthebomber
Forista
Registrado: 2012-08-16
Mensajes: 4

Publicado: 2012-08-16 00:44:05    Asunto:

El problema se solucion? cuando agregu? una acci?n dentro del ?ltimo for, alguien sabe algo?
Adicionalmente ten?a un par?ntesis sin cerrar
gensuruthebomber
Forista
Registrado: 2012-08-16
Mensajes: 4

Publicado: 2012-08-16 00:47:05    Asunto: Re: Problema con script en bash

[quote:686013458d="miguelgf"]Hola.
Este trozo:
[code:1:686013458d]for m in {1..3} #$(seq 1 $((${sup_lim})))
do
#line="distance dist :${res} :${k} dist_frm${frm_${frame}_res_${res}_wat_${k}.log"
#echo ${line}>>dist_scripts/dist_frm_${frame}.ptraj
done[/code:1:686013458d]
da este error
[code:1:686013458d]
linea 23: error sint?ctico cerca del elemento inesperado done
[/code:1:686013458d]
porque el bucle est? vac?o (las l?neas comentadas no cuentan).
Puedes borrar el resto del script, dejar solo el bucle y seguir? dando el mismo error.

Eliminando los comentarios, realmente el bucle es:
[code:1:686013458d]for m in {1..3}
do
done[/code:1:686013458d]
Ah? se v? m?s claro que est? vac?o.

Saludos.[/quote:686013458d]

Justo como dices, ten?a un par?ntesis sin cerrar, intentando aislar ese error, cree uno nuevo, el bucle vac?o xd (no sab?a que generaba error). Muchas gracias por tu respuesta tan r?pida





La marca registrada Linux (R) se usa siguiendo la sublicensia obtenida del "Linux Mark Institute",
el LICENCIATARIO exclusivo de Linus Torvalds, propietario de la marca en EEUU y otros países
The registered trademark Linux (R) is used pursuant to a sublicense from the Linux Mark Institute,
the exclusive LICENSEE of Linus Torvalds, owner of the mark in the U.S. and other countries