Printfの追加失敗

Printfの追加失敗

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は、通常、ファイルの末尾に末尾の改行文字を追加するのが良い考えだと指摘しています。一部のツールでは、ファイルが改行文字で終わると予想しており、改行文字がないと予期しない動作が発生する可能性があります。

おすすめ記事