Abaixo está uma cópia completa de uma demonstração que estou usando para descobrir como obter o sed
comando para se livrar dos espaços no nome de uma pessoa e compactá-lo para não ter espaços.
Feito isso, quero atribuí-lo à variável comp
e poder reutilizá-lo mais tarde no script. Aqui estou apenas tentando echo
fazer o stdout para ver que funcionou.
Se eu executar o script e inserir meu nome, Ronald McDonald
o resultado que recebo é RonaldMcDonald}
com aquela chave no final do nome ou o que quer que eu digite.
Como faço para que funcione, para que o resultado não seja anexado }
ao final do texto atribuído.
#!/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
Responder1
Você tem que usar a substituição de comando para isso, ou seja, em vez de
comp={ echo "$fullName" } | sed 's/ //g'
algo como
comp=$(echo "$fullName" | sed 's/ //g')
ou
comp=`echo "$fullName" | sed 's/ //g'`