如何將sed的結果分配給變數

如何將sed的結果分配給變數

以下是我用來找出sed刪除人名中空格的命令的演示的完整副本,並將其壓縮為沒有空格。

完成此操作後,我想將其分配給變量comp,然後我可以稍後在腳本中重新使用它。在這裡,我只是嘗試將echo其發送到標準輸出,以便我可以看到它的工作原理。

如果我運行腳本並輸入我的名字,那麼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'`

相關內容