シェルに関係なくオプションを使用しない場合、`echo`によって生成された改行は常に存在しますか?

シェルに関係なくオプションを使用しない場合、`echo`によって生成された改行は常に存在しますか?

読んだにもかかわらずスティーブン~の回答echo基本的にVSのすべての側面に焦点を当てていますがprintf、これが私の質問に対する答えであるかどうかはわかりません。

によって生成された改行文字は、echoオプションを使用せずにほぼすべてのシステムに常に存在しますか? :

POSIXスクリプトがあり、関連する部分は次のとおりです。

printf '\n'; printf '\n' >&2

printf私はこの状況に耐え続けるべきかどうか私に尋ねました。

より良く見えるかもしれません:

echo; echo >&2

しかし、私は専門家ではないのでよくわかりません。

ベストアンサー1

によって生成された改行文字は、echoオプションを使用せずにほぼすべてのシステムに常に存在しますか?

本当にいつもそこにいるのかわかりません。みんなシステムですが、しなければならないすべてのPOSIX派生システムに存在します。 ~によると仕様

説明
このechoユーティリティは引数を標準出力に書き込み、その後に<newline>が続きます。パラメータがない場合は、<newline>のみが作成されます。

それから

実装はどのオプションもサポートしてはいけません。

一部の実装はいくつかのオプションをサポートしていますが、オプションが提供されていない場合はPOSIXに置き換える必要があります。はい。改行文字を生成する必要があります。

理論的には、不順応を恐れている場合、不順応もecho恐れる可能性がありますprintf。実際には、printf強力なコードを書こうとするときは、とにかくそれを信頼することをお勧めします。これは通常、これが正しいツールであり、いくつかの極端なケースではそれを捨てる必要がないためです(「簡単なケースを超えて」を参照)。この回答どういう意味か理解してください)。

おすすめ記事