GNU Core Utilities/echo
echo
コマンドは、指定した文字列を標準出力に表示するコマンドです。GNU coreutils に含まれており、Linux では GNU 版が、FreeBSD では BSD 版が提供されています。基本的な動作は共通していますが、オプションの扱いに違いがあります。
基本的な使い方
編集echo [オプション] [文字列]
指定した文字列を標準出力に表示します。
主なオプション(GNU coreutils 版)
編集オプション | 説明 |
---|---|
-n |
末尾の改行を省略 |
-e |
バックスラッシュによるエスケープシーケンスを有効化 |
-E |
バックスラッシュによるエスケープシーケンスを無効化(デフォルト) |
例
編集文字列を表示
編集echo "Hello, world!"
- 出力例
Hello, world!
末尾の改行を省略
編集echo -n "Hello, world!"
(改行されずに出力される)
エスケープシーケンスを有効化
編集echo -e "Hello\nWorld"
- 出力例
Hello World
環境変数の値を表示
編集echo "HOME is $HOME"
- 出力例
HOME is /home/user
コマンド置換を利用
編集echo "Today is $(date)"
- 出力例
Today is Mon Jan 31 12:34:56 JST 2025
FreeBSD 版との違い
編集FreeBSD でも echo
コマンドは提供されていますが、GNU coreutils 版といくつか違いがあります。
主な違い:
編集-e
オプションの扱い- FreeBSD の
echo
は-e
オプションをサポートせず、バックスラッシュの解釈はシェルの実装に依存する。 - 代替として
printf
コマンドを使用することが推奨される。
printf "Hello\nWorld\n"
- FreeBSD の
- GNU coreutils 版を FreeBSD で使う方法
coreutils
パッケージをインストールするとgecho
という名前で GNU 版echo
が使える。
pkg install coreutils gecho -e "Hello\nWorld"
詳しくは、それぞれの環境で man echo
を確認してください。