如何将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'`

相关内容