2015-05-18

zsh: echo command

経緯


私は最近まで『改訂版 Mac OS Xターミナルコマンド・ポケットリファレンス、MINAKAMI Shinobu、2006第2版、技術評論社、ISBN4-7741-2877-5』を参考にしていました。でも「bash→zsh』に乗り換えると、流石に最近のMacに則した解説書が欲しくなりました。

そこで次の本を購入しました;

  • “Macintosh Terminal Pocket Guide Third release”, 
    • Daniel Barrett, 2012/7/2,
    • O’Reilly, ISBN: 978-1-449-32834-4.

疑問点


以前から釈然としていなかった「echoのオプション」を見ると
    ・MINAKAMI版, p53: 「-n」
    ・Barrett版, p170: 「-n, -e, -E」

zshを運行している私の経験から見ると、Barrett版が正しいと思います。

そこで、調べて見ました。結果を図1に示します;
 

Figure 1. ' shell built-in echo' and '/bin/echo'


大雑把にいえば;
  • 日常的に使っている「echo」は『shell built-in echo』である。
  • 日常的に使っている「man echo」は『/bin/echoのマニアル』である。

従って、zshで使っている「echo」の挙動を知るには、我々は図2の様な「zshのオンライン・マニュアル」を見るべきです。

と書きましたが、間違えでした。次の図3にお進みください。ただし、最新バージョンの確認には使えますので、図2はそのままとします。


Figure 2. zsh: Shell-Builtin-Commands:: echo
と書きましたが、間違えでした。次の図3にお進みください。


ターミナルでのzshマニュアルズ

Figure 3. “echo” part of the zshbuiltins.pdf displayed in a preview.app.

図2を書いている頃は、 私は「man zsh」だけがzshのオンライン・マニュアルと思っていました。でも、試しにターミナルで「man zshall」と叩くと、zshallがターミナル上に現れました! 当然「zshbuiltins」もあります。 zshの資料検索にとってこれはとてもありがたいことです。

『man→ pdf』の変換には、「man2pdf」という手作スクリプトを使っています。pdfにはコメントやブックマークを付けたりできるからです。


そこで「zshマニュアル(pdf)に対する簡易検索と表示」をするスクリプト(zzz)を試作しました。



Figure 4. A typical operation example of zzz.

pdf資料の検索に「grep」を使うと、不安定な出力が出ます。そこで「mdfind」で代用しています。

「mdfind」: 「Spotlight search」のターミナル版です。

echoの有効活用


「echo -E」は、改行区切りの処理に有用と思う。特に「\n, \t」がコンパクトに表示されるので、問題把握が迅速になると感じます。


メモ

  • 今後、コマンドとmanが食い違う場合、「where」を用いてコマンドが複数あるかどうかをチェックから始めよう。
  • zzzは安定したら、公開します。



____
この記事の履歴
  1.  開始 2015-05-18(月) 22:16:56 
  2.  追加 2015-05-23(土) 18:51:39 ターミナルでのzshマニュアルズ

0 件のコメント:

コメントを投稿

注目の投稿

Terminalでの、なんちゃってViモドキ

近頃、ようやくKarabiner-Elementsに慣れてきたので、 Terminalで動作する「擬似Vi-Mode」を作って見たので、ご紹介します。 『概要』 「擬似Vi-Mode」の所以は、方向キー「←↓↑→」を通常の「hjkl」ではなくて「jkil」としました。これ...