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
を確認してください。