이 여러 줄 문자열 (따옴표 포함)이 있습니다.
abc'asdf"
$(dont-execute-this)
foo"bar"''
Bash의 heredoc을 사용하여 변수에 어떻게 할당합니까?
줄 바꿈을 유지해야합니다.
문자열의 문자를 피하고 싶지 않아서 성 가실 것입니다 ...
"EOF"
via으로 호출하면 double-qouted 변수의 bash 주석 "#"은 eval $VAR
$ 스크립트가 한 줄로 표시되므로 나머지 스크립트는 모두 주석 처리됩니다 ; 여러 줄 #
스크립트에서 bash 주석 을 사용할 수 있도록 eval call:
eval "$ VAR"의 큰 따옴표도 사용합니다 .
eval
이 방법에 문제가 있었지만 eval
구성 파일에 정의 된 변수 가있는 패키지의 일부이기 때문에 추적하지 않았습니다 . 오류 메시지였다 /usr/lib/network/network: eval: line 153: syntax error: unexpected end of file
. 방금 다른 솔루션으로 전환했습니다.
'EOF'
으로 이스케이프 된 줄` in the content: if the second line has
바꿈을 사용 하여 작은 따옴표 로 heredoc 할당을 시도했습니다 . " .sh : line X : cd : command not found "; 그러나 내가 큰 따옴표로 묶으면"EOF"
; bash 변수${A}
는 문자열로 유지되지 않습니다 (확장됩니다). 그러나 줄 바꿈 이 유지됩니다. 그리고 두cd
번째 줄에서 명령을 실행하는 데 문제가 없습니다 ( 그리고 'EOF'와 "EOF"는에eval
저장된 일련의 명령을 실행 하기 위해 잘 작동하는 것 같습니다 . 문자열 변수 ). 건배!