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'`