bash 스크립트를 사용하여 파일에 블록 문자열 변수를 추가하는 방법은 무엇입니까?

bash 스크립트를 사용하여 파일에 블록 문자열 변수를 추가하는 방법은 무엇입니까?

~/.bash_profile에 다음을 추가하고 싶습니다.

# ---------------
# PERSONNAL EDITS

# anaconda3
. /opt/anaconda3/etc/profile.d/conda.sh

이를 위해 다음 스크립트를 사용합니다.

#!/bin/bash

app_str=\
'\n
# ---------------\n
# PERSONNAL EDITS\n
\n
# anaconda3\n
. /opt/anaconda3/etc/profile.d/conda.sh'

echo -e $app_str >> ~/.bash_profile

그러나 결과는 다음과 같습니다.

<lines above...>

 # ---------------
 # PERSONNAL EDITS 

 # anaconda3
 . /opt/anaconda3/etc/profile.d/conda.sh

파일에 추가된 각 줄 앞에는 공백이 있습니다. 공백을 제거하는 방법?

답변1

참조 변수:

echo -e "$app_str"

인용하다:변수를 참조하는 경우

답변2

나는 사용하는 것이 좋습니다여기 문서대신에:

cat >> ~/.bash_profile <<'EOF'    
# ---------------
# PERSONNAL EDITS

# anaconda3
. /opt/anaconda3/etc/profile.d/conda.sh
EOF

IMHO 여러 줄 문자열을 에코하는 것보다 읽기 쉽고 유지 관리가 더 쉽습니다.

관련 정보