私はこれがecho -e
一般的な命令ではないことを知っています。echo '-e'
私はこれを試しましたが、echo \-e
まだ動作しません。
ベストアンサー1
最善の解決策はそれを使用するのではなくecho
使用することですprintf
。
printf '%s\n' -e
これは任意の変数に対して機能します。
var=-e
printf '%s\n' "$var"
echo
...これは、値がdという知識に基づいてコードの他の場所で特別な準備/修正を実行する必要がないことを意味します。
さて、POSIX シェルコマンド仕様echo
実装時に移植が不可能であることを認識し、トピックに関する注意事項を含めてください。
-n(最初の引数)とエスケープシーケンスを省略しない限り、すべてのPOSIXシステムでechoを移植的に使用することはできません。
printfユーティリティは、次のようにechoユーティリティの一般的な動作をエミュレートするために使用できます(IFSに標準値があるか設定されていないと仮定)。
POSIX.1-2008 このボリュームの歴史的な System V エコおよび XSI 実装の要件は、次のとおりです。
printf "%b\n" "$*"
BSDエコーは次のとおりです。
if [ "X$1" = "X-n" ] then shift printf "%s" "$*" else printf "%s\n" "$*" fi
新しいアプリケーションでは、echoの代わりにprintfを使用することをお勧めします。
(強調追加)。
言い換えれば、GNUシステムには、標準に準拠した動作を要求する別のオプションがあります。
$ POSIXLY_CORRECT=1 /bin/echo -e
-e