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'`

관련 정보