ファイルにコンテンツを追加しようとしました。
printf "\nsource ~/script.sh" >> /etc/bash.bashrc
echo -e "\nsource ~/script.sh" >> /etc/bash.bashrc
cat >> "/etc/bash.bashrc" <<< "source ~/script.sh"
3つの方法すべてが機能します。cat
ここで文字列は最後から読む必要があるので(にcat
追加した後)、あまり快適ではないと思います。[end]
[start]
どの方法も自動的に行を壊さず、\n
個人的に最後の手段として and 構文を使用します。また、ここに文字列に改行文字を追加する方法がわからず、この方法でそのような方法が見つかりませんでした。printf
echo
文書。
私が探しているのは、パラメータや構文を追加せずに行を自動的に削除できるユーティリティです。 nixテキスト処理ユーティリティについて読みましたが、目的のものが見つかりませんでした。そのようなユーティリティを知っていますか?
ベストアンサー1
cat
「間違った方向」という行を書く必要はありません。これは問題なく動作します(もちろん、ここの文字列の矢印はまだ奇妙な方向を指します)。
$ cat <<< "some text" >> testfile
$ cat testfile
some text
コメントで述べたように、here-stringは末尾に改行文字を追加しますが、withprintf
とecho
youは次のように使用します。\n
前にひも。
echo
ここにある文字列のように、通常は末尾の改行が追加されるので、これが必要なすべてであればecho
大丈夫でしょう(ほとんどのシェルに組み込まれた関数です。)
すべてのコマンドは改行で若干異なる動作をします。
cat >> file <<< "string" # newline at end
printf "\nstring" >> file # newline at beginning
echo -e "\nstring" >> file # newline at beginning and at the end
正直なところ、私はこの表記に慣れるのが最善だと思います\n
が、気に入らない場合は常にここに文書があります(先行および末尾の改行がここに含まれています)。
cat >> file <<EOF
some text
EOF