シェルスクリプトのechoの挙動でつまづく

1.Debian(Raspi-os aarch64)の挙動

debian-echo.jpg

  • echoの" "内の\nは改行として出力される。
  • echoの -e オプションは認識されない。

さらに実験。

debian-echo-2.jpg

  • shにbuiltinされたechoと/usr/bin/echoがあって、
    manのechoは/usr/bin/echoのようで、-eオプションが効く。
    単にshからechoを呼ぶと、builtinのechoとなり挙動が違う。

2.FreeBSDの挙動

FreeBSD-echo.jpg

  • echoの" "内の\nは改行として出力されない。
  • echoの -e オプションを付けると\nが改行として出力される。
  • echoのmanには-eオプションの記載なし、-nのみ。
    なのに-eオプションが有効だ。
  • /usr/bin/echoは無い。
    which echoと聞くと、built-in command と返事が返ってくる。

3.両者で動作する書き方

echo "Context-type: text/html"
echo
echo

書き換えた。根拠は無いのだが、正しい書き方のような感じがしている。

2021年9月17日