2013-03-06 3 views
1

명령 출력을 변수에 저장할 때 후행 줄 바꿈을 유지할 수 있습니까?명령 출력을 변수에 저장하는 경우 어떻게 후행 줄 바꿈을 유지합니까?

$ echo "foo 
" # newline appears after foo 
foo 

$ MYVAR="$(echo "foo 
")" 
$ echo "${MYVAR}" # newline is stripped 
foo 
$ 
+1

은'bash' man 페이지는 명확하게 뒤에 줄 바꿈이 제거한다고 명령 대체 내의 명령 출력으로부터. 멀티 라인 값을 가진 매개 변수를 다루는 것보다 문제를 해결하는 더 좋은 방법이있을 수 있습니다. 당신이 성취하고자하는 더 큰 임무는 무엇입니까? – chepner

+0

후행 공백을 유지하면서 후행 공백이 포함될 수있는 변수에서 첫 줄을 제거하는 방법을 알고 싶습니다. 그것들을 제외하고는, 아이템을 FIFO 큐에서 맨 위로 잡아 당겨 맨 아래로 밀어 넣으면 아이템이 빈 문자열 일 수 있습니다. 배열을 사용하여이 작업을 수행 할 수도 있습니다. –

+0

그래, 배열이 나아 졌어. –

답변

2

당신은 스트림의 마지막에 감시를 추가 할 수 있습니다

$ my_var=$'foo\n\n' 
$ captured=$(echo -n "$my_var"; echo -n "x") 

당신은 제거하는 :

$ captured=${captured%x} 
$ echo "$captured" 
관련 문제