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