シェルスクリプト総合 その1

このエントリーをはてなブックマークに追加
1前スレ950
シェルスクリプトの総合スレです。
スクリプトのお勉強・自慢・腕試しなどにどうぞ。

まずは注意点、リンク、地鎮祭など(>>1-10くらい)をご覧ください。

□前スレ:
☆シェルスクリプトを勉強するにあたって☆
http://pc5.2ch.net/test/read.cgi/unix/989659936/

便利なシェルスクリプト見せろ
http://pc5.2ch.net/test/read.cgi/unix/996949546/

□関連スレ:
【貝】第1回シェル講座【殻】
http://fun.kz/test/read.cgi/unix/1016372780/ (過去ログ)

おまえら! shell は何を使っているんですか?
http://pc5.2ch.net/test/read.cgi/unix/1012330865/

□みんなのお約束:
・特記なき場合はbourne shがデフォルトです。
 bash/csh/zsh/kshなどに依存する場合は明示しましょう。
 Linuxユーザは/bin/shの正体がbashなので特に注意。

・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。
 manを見ましょう。
 aproposないしはman -kでそれらしい単語による簡単な検索もできます。
 シェルの構文や内部コマンドはman shで。

・シェルスクリプトのことをシェルってゆーな
21:04/11/30 22:18:09
□参考リンク:
Bourne Shell自習テキスト
http://www.tsden.org/takamiti/shText/shText.html

シェルを使おう
http://www.netfort.gr.jp/~tomokuni/lms/shell/text/

/bin/shプログラミング入門
http://freebooks.info.nara-k.ac.jp/archive/ShellProgramming/

なぜcshでプログラムを書くのが良くないのか
http://www.klab.ee.utsunomiya-u.ac.jp/~hiroki/csh-whynot.euc

UNIX FAQ (ただし翻訳はいささか古いです)
http://www.nurs.or.jp/~asada/FAQ/UNIX/UNIX.FAQ.html

UNIX Programming FAQ (シグナルとか使うときは参考になるかも)
http://www.adl.nii.ac.jp/~moro/unix-programmer/faq-j_toc.html

UNIX関係FAQ色々(英語です。UNIX FAQの最新版もあり)
http://www.faqs.org/faqs/unix-faq/

UNIX系各種OSのman page検索
http://www.freebsd.org/cgi/man.cgi

POSIX: Shell & Utilities (標準規格)
http://www.opengroup.org/onlinepubs/009695399/utilities/contents.html

UNIXの部屋 (沢山のコマンドの簡単な紹介など)
http://x68000.q-e-d.net/~68user/unix/
31:04/11/30 22:18:28
□おすすめ書籍:
プロフェショナルシェルプログラミング
http://www.amazon.co.jp/exec/obidos/ASIN/4756116329/

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界
http://www.amazon.co.jp/exec/obidos/ASIN/4797321946/

UNIXシェルプログラミング徹底解説
http://www.amazon.co.jp/exec/obidos/ASIN/4822280489/

入門Kornシェル
http://www.amazon.co.jp/exec/obidos/ASIN/4873110149/

入門bash
http://www.amazon.co.jp/exec/obidos/ASIN/4900900788/


□初心者へのアドバイス:
・ここにあがっているような書籍を読んで基本を理解したら、
 /etc/rcなどの実際に使われているスクリプトを読もう。
 (※Linuxのinitとかはbashゴリゴリなので最悪との指摘もあり)
 あと、リダイレクトや引数の扱い(echo * の意味など)を完全に理解しよう。

・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも
 RubyやPerlの方が適した仕事には素直にそちらを使いましょう。

・知らないコマンドが出てきたらmanを引きましょう。

・思い通りに動かないときは、まずは sh -x でトレースしましょう。
41:04/11/30 22:19:00
□シェルスクリプトでよく使うコマンド:
制御・条件判定系:
[とtest, expr, true, false, yes, getopts, apply

テキスト処理系:
cat, awk, sed, tr, sort, uniq, grep, wc, head, tail, cut, paste, comm, join

ファイル名・ディレクトリ系:
find, xargs, basename, dirname

出力系:
echo, printf

対話コマンド制御系:
expect, でも単にftpしたい奴は素直にwget使っとけ