ikautak.log

C/C++, Python, CUDA, Android, Linux kernel, Network, etc.

シェルスクリプト 基本リファレンス

[改訂新版] シェルスクリプト基本リファレンス  ??#!/bin/shで、ここまでできる (WEB+DB PRESS plus)

[改訂新版] シェルスクリプト基本リファレンス  ??#!/bin/shで、ここまでできる (WEB+DB PRESS plus)

シェルスクリプトは普段からよく使っていて、本で勉強しようとは思わなかったが、雑誌のプレゼントで本が当たったので、ざっと読んでみた。

個々の項目で説明が完結していないため、いくつも参照する必要があり、全体的に読みにくいかもしれない。
LinuxbashFreeBSDSolarisのシェルの違いが載っているため、汎用的なスクリプトを書くための参考にはなる。

シェルの文法を細部まで解説していて、変わった記述が多く紹介されている。
例えばリダイレクトを使った以下の3つは、どれも同じ動作となる。

sort -n < file | uniq
sort < file -n | uniq
< file sort -n | uniq 

普段使っていなくて、便利そうだったのは ${xxx:-yyy} のデフォルト値の指定。

cp file "${1:-/tmp}"

こう書くと、引数1で指定したディレクトリにコピー、引数1が未設定または空文字列だったら/tmpにコピーとなる。
パラメータ展開の説明とかtestコマンドのオプション一覧とかは結構役に立つかも。