Mac echo コマンド:
オプション、正規表現など

UB3/informatics/commands_mac/echo_mac

このページの最終更新日: 2023/02/14

  1. 概要: echo とは
    • echo でタイプした文字を出力する
    • echo で変数を出力する
  2. echo のオプション一覧
  3. echo で文字列を編集して出力する
    • オフセットと文字数で指定
    • パターン一致で指定

広告

概要: echo とは

プログラミングを習い始める際に、ひょっとしたら一番最初に使うコマンドかもしれない。この例がよく使われる。


echo Hello World!
Hello World!

これでは、echo はそのあとに入力された言葉をただ繰り返すだけの無能なコマンドであるという誤解を与えかねない。このページでは、echo の便利な使い方についてまとめる。


echo でタイプした文字を出力する

上の Hello World! の例のように echo 文字列 でよい。出力する文字列にスペースが入っても OK。


echo で変数を出力する

変数 A が定義されているとき、その名前に $ をつけて


echo $A

とすると、変数の中身が出力される。

echo のオプション一覧

n

文字を出力した後、改行しないようにする。例えば、for loop を使って以下のように出力することができるようになる。

1
1 2
1 2 3

echo -n 出力文字 とする。ただし、このコマンドは bash では使えるが zsh では使えないようなので注意。

echo で文字列を編集して出力する

echo は、出力の前に文字列を編集することができる。まず例を示すために、ABC という名前の変数を作って確認する。名前は ABC だが、中身は abcdefg と 7 つの文字が入っている。

ABC="abcdefg"
echo ${ABC}
abcdefg

なお、ここで echo ABC としてしまうと、変数が展開されずに、単に ABC と表示される。

オフセットと文字数で指定

基本は ${変数:オフセット:長さ} である。

上の変数 ABC を使うと、0:3 で 0 番目から 3 文字分のみを出力する。

ABC="abcdefg"
echo ${ABC:0:3}
abc

長さを指定しない場合は、オフセット位置から全ての文字が出力される。以下の例でわかるように、オフセットを 3 にする場合、3 番目の文字 c は出力に含まれない。

ABC="abcdefg"
echo ${ABC:3}
defg


パターン一致で指定

ファイル名から拡張子を除く際などに便利である。上と同様に、まず FILE という変数に abc.out.txt という文字列を格納して表示してみる。

FILE="abc.out.txt"
echo ${FILE}
abc.out.txt

ここで、右側から文字列を除きたい場合は % で、左側なら # で指定 する。具体的には次のようになる。いくつか例を列挙しておく。

FILE="abc.out.txt"
echo ${FILE%t}
abc.out.tx


echo ${FILE%.txt}
abc.out

ワイルドカード * を使って、.txt に限らず、一番右側のあらゆる拡張子を除くパターン。

echo ${FILE%.*}
abc.out

左側から除きたい場合には、

echo ${FILE#abc.}
out.txt

この場合、ワイルドカードはちょっと使いにくい。なぜか効いていないように見える。

echo ${FILE#a*}
bc.out.txt


広告

References

  1. bashで変数から部分文字列を取得する.Link: Last access 2020/04/28.
  2. echoコマンドの詳細まとめました.Link: Last access 2020/10/12.

コメント欄

サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。