此问题已在此处有答案:
Add a newline only if it doesn't exist(20个回答)
4天前关闭。
我尝试在变量中写入一个公共SSH密钥,并将其附加到authorized_keys SSH文件(~/.ssh/authorized_keys
)。问题是,它没有将其添加到新行。
最后,我得到了如下来自cat ~/.ssh/authorized_keys
的内容,所有内容都在一行中:
ssh-rsa ... original@hostssh-rsa ... root@anotherhost
shell
sudo echo $SSH_KEY >> $SSH_AUTHORIZED_KEYS_FILE
我怎么能保证这不会破坏东西?
1条答案
按热度按时间pgpifvop1#
使用echo和-e选项(它可以解释反斜杠转义),并在你试图追加到文件中的内容前加上“\n”。这首先会向文件写入一个换行符,然后是你的变量的值。
请注意,运行echo时不带-n选项会自动在输出的末尾加上另一个换行符。如果你想防止这种情况,可以这样写: