bash-as-sh エコ-n

bash-as-sh エコ-n

bash(重要な場合はバージョン3.2.57(1))にshをエミュレートするモードで組み込み-nオプションを実装させる方法はありますかecho

echo -n特に、M個の異なるスクリプトでN個の呼び出しを見つけて書き換えるのではなく、長年にわたってうまく機能してきた(たぶん不運かもしれません)どこかに設定するオプションがあるかどうか疑問に思います。明らかにbashの組み込み関数はecho これを行うことができます-n。なぜなら、フルbashモードでは可能だからです。

echo -n[免責事項:はい、最初は移植性がないことを知っていますが、printfお勧めします。 ]


注:1つのコメントは、このbashバージョンが「17年前」と指摘しました。誰かがこれをAppleに知らせる必要があります。これは、私が新しく購入したMacにインストールされたMacOS Ventura 13.0に同梱されているバージョンです。

ベストアンサー1

私が思いつく最善のアイデアは、組み込み機能をGNU coreutilsのecho「本当の」実行可能ファイルに置き換えることです。これはbashがある場合はほぼ確実にインストールされています。echo

echo() { "$(type -P echo)" "$@" ; }

内蔵アイテムを隠すだけです。

GNU Coreutilはecho.c実際にはそれほど長くないので、「私はUNIX System Vで動作していますが、この動作は予想されますか?」などの特殊なケースでは、処理、--help印刷、および同様の作業が大部分を占めています。厳しく必要に応じて、シェルスクリプトに小さなC実装を含め、echoPOSIX指定手段を介してそれらを配置することを検討できます(c99実装したことがある場合)。これは2000年代のマシンなので、Perlがあると仮定してPerlで同じ機能を実装することをお勧めします。

おすすめ記事