Unix - Concatenar Variables en un Script

 
Vista:
sin imagen de perfil

Concatenar Variables en un Script

Publicado por Oscar (6 intervenciones) el 23/06/2015 12:49:44
Hola A todos..

Deseo que me puedan ayudar con esto:

Estoy tratando de crear un script, que muestre por pantalla el resultado de la concatenacion de 3 variables
Cuando en el script coloco lo siguiente :

a="$campo1"
b="$campo2"
c="$campo32A"
echo ${a}
echo ${b}
echo ${c}

la salida es :

# ./prueba6.ksh
103
G0151664029101
USD3000,


Yo deseo que el script coloque los campos de la siguiente manera

103 | G0151664029101 | USD3000,

solo he logrado concatenar 2 variables usando el siguiente codigo :
a="$campo1"
b="$campo2"
c="$campo32A"
echo ${a}" | "${b}
# ./prueba6.ksh
103 | G0151664029101

Pero cuando en el script coloco para que muestre las 3 variable, se pierde la informacion de las variables
a="$campo1"
b="$campo2"
c="$campo32A"
echo ${a}" | "${b}" | "${c}

Esto es lo que muestra en la salida
# ./prueba6.ksh
| USD3000,664029101

Agradeceria si pueden darme una mano para solventar esta situacion
Saludos
Oscar Zambrano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 35
Ha mantenido su posición en Unix (en relación al último mes)
Gráfica de Unix

Concatenar Variables en un Script

Publicado por xve (70 intervenciones) el 23/06/2015 16:32:55
Hola Oscar, prueba así:
1
2
3
4
a="A"
b="B"
c="C"
echo "${a} | ${b} | ${c}"

Con las comillas normales, y todo dentro de las mismas te funcionara con sh... no se que tal con ksh!!! ya nos comentas...;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Concatenar Variables en un Script

Publicado por Oscar (6 intervenciones) el 23/06/2015 18:56:31
Hola xve.. Gracias por tu respuesta.. modifique el codigo asi :

a="${campo1}"
b="${campo2}"
c="${campo32A}"
echo "${a} | ${b}"

La salida en este caso es correcta cuando ejecuto el script
# ./prueba7.ksh
103 | G0151664029101


Sin embargo cuando coloco en el codigo en el script para unir las tres variables, se desordena todo, me da solo el tercer campo como primera posicion y parte del segundo
a="${campo1}"
b="${campo2}"
c="${campo32A}"
echo "${a} | ${b} | ${c}"

# ./prueba7.ksh
| USD3000,664029101

Saludos
Oscar Zambrano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 35
Ha mantenido su posición en Unix (en relación al último mes)
Gráfica de Unix

Concatenar Variables en un Script

Publicado por xve (70 intervenciones) el 24/06/2015 14:03:23
Hola Oscar, una pregunta, el archivo .ksh es de kshell4?

lo digo para poder probarlo, ya que en bash me funciona correctamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Concatenar Variables en un Script

Publicado por Oscar (6 intervenciones) el 26/06/2015 13:39:01
Buenos Dias.. xve...Te comento que de verdad no se si es kshell4..como lo averiguo...Ahora bien ..he realizado pruebas con las instrucciones que me has enviado..y funciona correctamente si yo le asigno valor a las variables directamente

ejemplo.. En el script coloco

a=103
b=G0151663057701
c=USD56843,75
d=G0151663057701
echo "$a | $b | $c | $d " >> archivo.txt

y se genera el archivo como yo lo quiero.
# more archivo.txt
103 | G0151663057701 | USD56843,75 | G0151663057701


en cambio si lo hago asignando a las variables a,b,c el resultado de otras variables obtenidas de otro proceso
se cambia el resultado.

Ejemplo:
a=${campo1}
b=${campo2}
c=${campo32A}

echo $a
echo $b
echo $c
echo "$a | $b | $c" >> archivo.txt

al ejecutar # ./prueba8.ksh
la salida por pantalla es :
103
3981408
CAD1500,

pero en el archivo se grabo lo siguiente

# more archivo.txt
| CAD1500,08

que puedes estar pasando...

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 35
Ha mantenido su posición en Unix (en relación al último mes)
Gráfica de Unix

Concatenar Variables en un Script

Publicado por xve (70 intervenciones) el 26/06/2015 15:49:03
Hola Oscar, que valores tienen las variables campo1, compo2, ....? lo digo para poder probar tu mismo ejemplo.

Si yo hago:

1
2
3
4
5
6
7
8
9
campo1="rojo"
campo2="azul"
campo3="verde"
 
a=${campo1}
b=${campo2}
c=${campo3}
 
echo "$a | $b | $c"

me funciona perfectamente!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Concatenar Variables en un Script

Publicado por Oscar A Zambrano (6 intervenciones) el 26/06/2015 21:58:57
Hola XVE.... las variables a b y c se llenan con los valores

103
3981408
CAD1500,

de hecho cuando hago el echo en el script.

echo $a
echo $b
echo $c

la salida por pantalla es :
103
3981408
CAD1500,

pero mas abajo en el mismo script al mismo momento de ejecucion

esta la sentencia

echo "$a | $b | $c" >> archivo.txt

pero al ver en el archivo.txt generado solamente se observa lo siguiente :

| CAD1500,08

es decir aparece solo la variable $c y parte de la variable $b

Saludos
Oscar Zambrano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 35
Ha mantenido su posición en Unix (en relación al último mes)
Gráfica de Unix

Concatenar Variables en un Script

Publicado por xve (70 intervenciones) el 27/06/2015 11:13:47
La verdad es muy extraño, no entiendo porque te o hace mal...

Otra manera que podrias probar, es ir añadiendo cada uno de los parametros al archivo, haber que tal...

algo asi:

1
2
3
4
5
echo $a >> archivo.txt
echo " | " > archivo.txt
echo $b > archivo.txt
echo " | " > archivo.txt
echo $c > archivo.txt
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Concatenar Variables en un Script

Publicado por Tom (178 intervenciones) el 27/07/2015 14:52:05
A ver ¿ no puede ser que el carácter '|' tenga un significado expecial para el ksh (igual para el bash) ?
Yo probaría, o bien a usarlo entre comillas simples, o bien a anular su significado, con basckslash:

1
2
3
echo $a' | '$b' | '$c >>loquesea
ó
echo "$a \| $b \| $c" >>loquesea

Por cierto, en ksh es mucho mejor usar print (o printf) en lugar de echo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Concatenar Variables en un Script

Publicado por Oscar (6 intervenciones) el 28/07/2015 22:29:16
Gracias Tom...por tu tiempo y apoyo.. eso pensaba yo tambie que podria ser por el caracter pipe..

continjue haciendo pruebas y resulto esta publicacion de Aurelio Vázquez Alejo... coloque en mi script lo siguiente :



mt="${campo1}"
c20="${campo20}"
c31c="${campo31C}"
c52a="${campo52A}"


echo $mt "|" $c20 "|" $c31c "|" $c52a >> archivo.txt

Luego la salida del archivo.txt es :

700 | 3544551110417844 | 141103 | WITHOUT

Esos eran exactamente los valores de cada variable..


Gracias a todos por su colaboracion

Oscar A Zambrano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 7
Ha mantenido su posición en Unix (en relación al último mes)
Gráfica de Unix

Concatenar Variables en un Script

Publicado por Aurelio Vázquez Alejo (11 intervenciones) el 28/07/2015 03:30:08
realice una prueba sin problema con este ejemplo tomando toda la información que se ha publicado sin ningun problema, revisa tu script donde estas integrando la rutina, posiblemente estas dando otros valores a las variables y por eso se pierde.

Contenido Script:

1
2
3
4
5
6
7
8
9
10
campo1=PASOA
campo2=PASOB
campo3=PASOC
 
 
a="${campo1}"
b="${campo2}"
c="${campo3}"
 
echo "${a}|${b}|${c}|"

Resultado:

PASOA|PASOB|PASOC|


Espero que esto te sirva

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

Concatenar Variables en un Script

Publicado por Oscar (6 intervenciones) el 28/07/2015 22:31:11
Gracias.. Aurelio Vázquez Alejo..por tu tiempo y apoyo..

Continue haciendo pruebas y resulto esta publicacion correcta... coloque en mi script lo siguiente :


mt="${campo1}"
c20="${campo20}"
c31c="${campo31C}"
c52a="${campo52A}"


echo $mt "|" $c20 "|" $c31c "|" $c52a >> archivo.txt

Luego la salida del archivo.txt es :

700 | 3544551110417844 | 141103 | WITHOUT

Esos eran exactamente los valores de cada variable..

Gracias a todos por su colaboracion

Oscar A Zambrano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar