![$(declare -p) 백슬래시를 계속 추가합니다.](https://linux55.com/image/212068/%24(declare%20-p)%20%EB%B0%B1%EC%8A%AC%EB%9E%98%EC%8B%9C%EB%A5%BC%20%EA%B3%84%EC%86%8D%20%EC%B6%94%EA%B0%80%ED%95%A9%EB%8B%88%EB%8B%A4..png)
에서 help declare
:
-p display the attributes and value of each NAME
그냥 실행하면 declare -p
예상대로 작동합니다. 서브쉘에서 실행하는 경우에도 마찬가지입니다 (declare -p)
.
그러나 를 사용할 때 echo "$(declare -p)"
, 즉 서브셸에서 명령을 실행하고 stdout
명령을 다시 캡처하고 에코하는 경우 stdout
이상한 일이 발생하는 것을 발견했습니다. 호출할 때마다 백슬래시가 출력됩니다 declare -p
. 실행 시간도 길어지고 있습니다.
첫 번째 실행의 출력 echo "$(declare -p)"
:
...
declare -x SHELL="/bin/bash"
...
두 번째 실행:
...
declare -x SHELL="/bin/bash"
...
declare -x SHELL=\"/bin/bash\"
...
세 번째 실행:
...
declare -x SHELL="/bin/bash"
...
declare -x SHELL=\"/bin/bash\"
...
declare -x SHELL=\\\"/bin/bash\\\"
...
여기서 무슨 일이 일어나고 있는 걸까요?