Как присвоить результат sed переменной

Как присвоить результат sed переменной

Ниже приведена полная копия демо-версии, которую я использую, чтобы понять, как получить sedкоманду для удаления пробелов в имени человека и сжать его так, чтобы в нем не было пробелов.

После того, как это сделано, я хочу присвоить его переменной, compчтобы я мог повторно использовать его позже в скрипте. Здесь я просто пытаюсь вывести echoего на stdout, чтобы увидеть, что это работает.

Если я запущу скрипт и введу свое имя, то в Ronald McDonaldрезультате я получу RonaldMcDonald}имя с фигурной скобкой в ​​конце или что-то еще, что я введу.

Как мне заставить это работать, чтобы результат не добавлялся }в конец назначенного текста?

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

решение1

Для этого вам придется использовать подстановку команд, т.е. вместо

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

что-то вроде

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

или

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

Связанный контент