다음 bash 스크립트를 고려하십시오.
~$ x="echo -n abc "
~$ $x && echo xyz
abcxyz
~$
호기심 때문에(원하는 대로), echo -n
무언가를 출력하는 명령이 포함된 bash 변수를 원합니다. 후행 공백을 유지하는 방식으로 정의할 수 있는지 궁금합니다.
확실한 선택은 따옴표를 사용하는 것입니다.
~$ x="echo -n \"abc \""
~$ $x && echo xyz
"abc "xyz
~$
그러나 이러한 인용문은 출력을 오염시킬 것입니다.
물론 두 번째 echo 명령 앞에 공백을 추가할 수도 있습니다.
~$ x="echo -n abc "
~$ $x && echo " xyz"
abc xyz
~$
그러나 질문의 목적은 x
후행 공백이 출력에 추가 따옴표가 없음을 의미하는 방식으로 변경될 수 있는지 확인하는 것입니다.$x
echo -n
매우 감사합니다.
답변1
이건 괴로워명령을 변수에 넣으려고 했지만 복잡한 경우는 항상 실패합니다!
해결책은 배열을 사용하는 것입니다.
$ x=(echo -n "abc ")
$ "${x[@]}" && echo xyz
abc xyz