我尝试在 CentOS (12.x) 中运行以下类似的命令:
printf "\nhello" "$HOME"/.bashrc
printf "\nhello" ${HOME}/.bashrc
执行后,我显示文件的内容.bashrc
,但没有看到任何新内容。
set -x
两者都带来空行输出,因此我的命令可能是错误的。
我在语法上也有类似的问题echo
(编辑:我可能记错了,但我记得我可以使用echo
不带附加运算符的内容来附加内容,例如>>)。
你看错了什么?
答案1
如果您尝试将输出重定向到.bashrc
文件,则需要重定向运算符>
(将覆盖文件),或者在您的情况下>>
(将追加文件)可能更合适。
printf '\n%s\n' "hello" >> "${HOME}/.bashrc"
Kusalananda 指出,在文件末尾添加尾随换行符通常是一个好主意。某些工具期望文件以换行符结尾,如果换行符不存在,则可能会出现意外行为。