Cómo asignar el resultado de sed a la variable

Cómo asignar el resultado de sed a la variable

A continuación se muestra una copia completa de una demostración que estoy usando para descubrir cómo obtener el sedcomando 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 compy luego puedo reutilizarlo más adelante en el script. Aquí solo estoy intentando acceder echoa la salida estándar para poder ver que funcionó.

Si ejecuto el script e ingreso mi nombre, Ronald McDonaldel 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'`

información relacionada