下面是我用来找出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'`