如何使用 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

恕我直言,它比尝试回显多行字符串更容易阅读且更易于维护。

相关内容