A continuación se muestra una copia completa de una demostración que estoy usando para descubrir cómo obtener el sed
comando para eliminar los espacios en el nombre de una persona y comprimirlo para que no tenga espacios.
Una vez hecho esto, quiero asignarlo a la variable comp
y luego puedo reutilizarlo más adelante en el script. Aquí solo estoy intentando acceder echo
a la salida estándar para poder ver que funcionó.
Si ejecuto el script e ingreso mi nombre, Ronald McDonald
el resultado que obtengo es RonaldMcDonald}
con esa llave al final de su nombre, o lo que sea que escriba.
¿Cómo hago para que funcione, para que el resultado no se agregue }
al final del texto asignado?
#!/bin/bash
function readName {
echo "Enter your full name:"
read fullName
clear
} # end readName
function cmprsName {
comp={ echo "$fullName" } | sed 's/ //g'
} # end cmprsName
function sayItNow {
echo $comp
} # end sayItNow
function allTogether {
readName
cmprsName
sayItNow
} #end allTogether
case $1 in
-h | --help ) allTogether
exit
;;
* ) echo "$0 -h"
exit 1
esac
Respuesta1
Tienes que usar la sustitución de comandos para esto, es decir, en lugar de
comp={ echo "$fullName" } | sed 's/ //g'
algo como
comp=$(echo "$fullName" | sed 's/ //g')
o
comp=`echo "$fullName" | sed 's/ //g'`