Ниже приведена полная копия демо-версии, которую я использую, чтобы понять, как получить sed
команду для удаления пробелов в имени человека и сжать его так, чтобы в нем не было пробелов.
После того, как это сделано, я хочу присвоить его переменной, comp
чтобы я мог повторно использовать его позже в скрипте. Здесь я просто пытаюсь вывести echo
его на stdout, чтобы увидеть, что это работает.
Если я запущу скрипт и введу свое имя, то в 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'`