Bash脚本:追加文本到文件,在一个新的行?



我试图在变量中编写一个公共SSH密钥,并将其附加到authorized_keys SSH文件(~/.ssh/authorized_keys)。问题是,它没有将它添加到新行。

我最终从cat ~/.ssh/authorized_keys中得到如下内容,全部在一行上:

ssh-rsa ... original@hostssh-rsa ... root@anotherhost

壳牌

sudo echo $SSH_KEY >> $SSH_AUTHORIZED_KEYS_FILE

我怎样才能确保这不会破坏东西?

使用echo和-e选项(允许解释反斜杠转义)并在前面加上"n"要添加到文件中的内容。这首先向文件写入一个换行符,后面跟着变量的值。

echo -e "n$SSH_KEY" >> $SSH_AUTHORIZED_KEYS_FILE

请注意,在不带-n选项的情况下运行echo会自动在输出的末尾加上另一个换行符。如果你想避免这种情况,写:

echo -ne "n$SSH_KEY" >> $SSH_AUTHORIZED_KEYS_FILE

相关内容

  • 没有找到相关文章

最新更新