Bash

Printf 追加失敗

  • July 11, 2018

我嘗試在 CentOS (12.x) 中執行以下類似命令:

printf "\nhello" "$HOME"/.bashrc
printf "\nhello" ${HOME}/.bashrc

執行後,我顯示.bashrc文件的內容,並沒有看到任何新內容。

set -x為兩者都帶來了空行輸出,因此我的命令可能是錯誤的。

我在語法上遇到了類似的問題echo(編輯:我可能記錯了,但我記得我可以在echo沒有像 >> 這樣的附加運算符的情況下附加內容)。

你看錯什麼了?

如果您嘗試將輸出重定向到您的.bashrc文件,您需要一個重定向運算符>(將覆蓋文件)或在您的情況下>>(將附加文件)可能更合適。

printf '\n%s\n' "hello" >> "${HOME}/.bashrc"

Kusalananda 指出在文件末尾放置一個尾隨換行符通常是個好主意。一些工具期望文件以換行符結尾,如果它不存在,可能會出現意外行為。

引用自:https://unix.stackexchange.com/questions/454780