Como atribuir o resultado do sed à variável

Como atribuir o resultado do sed à variável

Abaixo está uma cópia completa de uma demonstração que estou usando para descobrir como obter o sedcomando para se livrar dos espaços no nome de uma pessoa e compactá-lo para não ter espaços.

Feito isso, quero atribuí-lo à variável compe poder reutilizá-lo mais tarde no script. Aqui estou apenas tentando echofazer o stdout para ver que funcionou.

Se eu executar o script e inserir meu nome, Ronald McDonaldo resultado que recebo é RonaldMcDonald}com aquela chave no final do nome ou o que quer que eu digite.

Como faço para que funcione, para que o resultado não seja anexado }ao final do texto atribuído.

#!/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

Responder1

Você tem que usar a substituição de comando para isso, ou seja, em vez de

comp={ echo "$fullName" } | sed 's/ //g'

algo como

comp=$(echo "$fullName"  | sed 's/ //g')

ou

comp=`echo "$fullName"  | sed 's/ //g'`

informação relacionada