Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > e74e806c1a2640e922856d7eb69d1420 > files > 7

howto-text-ja-2006-5mdv2010.0.noarch.rpm

  BASH Programming - Introduction HOW-TO
  by Mike G mikkey at dynamo.com.ar
  Mon Jul 27 11:47:00 ART 2000
  “ú–{Œê–ó ç’U—TŽi
  July 2000

  ‚±‚Ì•¶‘‚́A‰’†‹‰‚̃VƒFƒ‹ƒXƒNƒŠƒvƒg‚̃vƒƒOƒ‰ƒ€‚ðŽn‚ß‚él‚ÌŽèˆø‘‚Æ‚µ
  ‚ď‘‚©‚ê‚Ä‚¢‚Ü‚·B(ƒ^ƒCƒgƒ‹‚©‚ç‚à•ª‚©‚é‚悤‚É)‚±‚ê‚͍‚“x‚È“à—e‚ð‰ðà‚µ
  ‚½•¶‘‚Å‚Í‚ ‚è‚Ü‚¹‚ñB‚킽‚µŽ©gAƒVƒFƒ‹ƒvƒƒOƒ‰ƒ€‚̃GƒLƒXƒp[ƒg‚Å‚Í‚È
  ‚¢‚Å‚·‚µA‚Ü‚µ‚Ä‚â’Bl‚Å‚à‚ ‚è‚Ü‚¹‚ñB‚±‚ê‚ð‘‚±‚¤‚ÆŽv‚¢—§‚Á‚½‚̂́A‚»
  ‚±‚©‚玩•ª‚ª‘½‚­‚ðŠw‚ׂ邾‚낤‚ÆŽv‚Á‚½‚©‚ç‚Å‚ ‚èA‚à‚µ‚©‚µ‚½‚瑼l‚Ì–ð
  ‚É—§‚‚©‚à‚µ‚ê‚È‚¢‚ƍl‚¦‚½‚©‚ç‚Å‚·B‚Ç‚ñ‚ȃtƒB[ƒhƒoƒbƒN‚àŠ½Œ}‚µ‚Ü‚·B
  “Á‚ɁAƒpƒbƒ`Œ`Ž®‚Å‚¢‚½‚¾‚¯‚é‚ÆŠð‚µ‚­Žv‚¢‚Ü‚· :)
  ______________________________________________________________________

  –ÚŽŸ

  1. ƒCƒ“ƒgƒƒ_ƒNƒVƒ‡ƒ“
     1.1 ÅVƒo[ƒWƒ‡ƒ“‚Ì“üŽèêŠ
     1.2 •K—vŽ–€
     1.3 ‚±‚Ì•¶‘‚ÌŽg‚¢•û

  2. ”ñí‚ɃVƒ“ƒvƒ‹‚ȃXƒNƒŠƒvƒg
     2.1 “`“‚Ì Hello World ƒXƒNƒŠƒvƒg
     2.2 ”ñí‚ɃVƒ“ƒvƒ‹‚ȃoƒbƒNƒAƒbƒvƒXƒNƒŠƒvƒg

  3. ƒŠƒ_ƒCƒŒƒNƒgƒVƒ‡ƒ“‚ɂ‚¢‚Ä(redirection)
     3.1 —˜_‚ÆŠÈ’P‚ȃŠƒtƒ@ƒŒƒ“ƒX
     3.2 ƒTƒ“ƒvƒ‹: stdout ‚ð file ‚Ö
     3.3 ƒTƒ“ƒvƒ‹: stderr ‚ð file ‚Ö
     3.4 ƒTƒ“ƒvƒ‹: stdout ‚ð stderr ‚Ö
     3.5 ƒTƒ“ƒvƒ‹: stderr ‚©‚ç stdout ‚Ö
     3.6 ƒTƒ“ƒvƒ‹: stderr ‚Æ stdout ‚©‚ç file ‚Ö

  4. ƒpƒCƒv (pipe)
     4.1 ‰½‚È‚Ì‚©A‚Ç‚±‚ª‚¢‚¢‚Ì‚©
     4.2 ƒTƒ“ƒvƒ‹: sed ‚ðŽg‚Á‚½ŠÈ’P‚ȃpƒCƒvˆ—
     4.3 ƒTƒ“ƒvƒ‹: 'ls -l *.txt' ‚Ì‘ã‘ÖƒRƒ}ƒ“ƒh

  5. •Ï” (variable)
     5.1 ƒTƒ“ƒvƒ‹: •Ï”‚ðŽg‚Á‚½ Hello World!
     5.2 ƒTƒ“ƒvƒ‹: ”ñí‚ɃVƒ“ƒvƒ‹‚ȃoƒbƒNƒAƒbƒvƒXƒNƒŠƒvƒg(‰ü—Ç”Å)
     5.3 ƒ[ƒJƒ‹•Ï”

  6. ðŒ§Œä(conditionals)
     6.1 ƒZƒIƒŠ[
     6.2 ƒTƒ“ƒvƒ‹: if .. then ‚É‚æ‚éŠî–{“I‚ÈðŒ§Œä‚Ì—á
     6.3 ƒTƒ“ƒvƒ‹: "if .. then ... else"  ‚ðŽg‚Á‚½Šî–{“I‚ÈðŒ§Œä‚Ì—á
     6.4 ƒTƒ“ƒvƒ‹: •Ï”‚𔺂Á‚½ðŒ§Œä

  7. for, while, until ‚É‚æ‚郋[ƒv
     7.1 For ‚̃Tƒ“ƒvƒ‹
     7.2 C Œ¾Œê‚ÉŽ—‚½ for
     7.3 while ‚̃Tƒ“ƒvƒ‹
     7.4 until ‚̃Tƒ“ƒvƒ‹

  8. ŠÖ”(functions)
     8.1 ŠÖ”‚̃Tƒ“ƒvƒ‹
     8.2 ƒpƒ‰ƒ[ƒ^[‚ðŽæ‚éŠÖ”‚̃Tƒ“ƒvƒ‹

  9. ƒ†[ƒUƒCƒ“ƒ^[ƒtƒFƒCƒX
     9.1 ŠÈ’P‚ȃƒjƒ…[‚ðì‚邽‚ß‚É select ‚ðŽg‚¤
     9.2 ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“‚ðŽg‚Á‚Ä‚Ý‚é

  10. ‚»‚Ì‘¼‚̃XƒNƒŠƒvƒg
     10.1 read ‚ðŽg‚Á‚ㆁ[ƒU‚Ì“ü—Í‚ð“ǂݍž‚Þ
     10.2 ”’l‚Ì•]‰¿
     10.3 bash ‚ð’T‚·
     10.4 ƒvƒƒOƒ‰ƒ€‚Ì–ß‚è’l‚ðŠl“¾‚·‚é•û–@
     10.5 ƒRƒ}ƒ“ƒho—Í‚ðŠl“¾‚·‚é•û–@
     10.6 •¡”‚̃\[ƒXƒtƒ@ƒCƒ‹

  11. ŽQÆƒe[ƒuƒ‹
     11.1 •¶Žš—ñ”äŠr‰‰ŽZŽq
     11.2 •¶Žš—ñ”äŠr‚ÌŽÀ—á
     11.3 ”’l‰‰ŽZŽq
     11.4 ”’lŠÖŒW‰‰ŽZŽq
     11.5 •Ö—˜‚ȃRƒ}ƒ“ƒh
        11.5.1 sed (stream editor)
        11.5.2 awk (ƒf[ƒ^ƒtƒ@ƒCƒ‹‚âƒeƒLƒXƒg‚ÌŒŸõ‚Ɛ®Œ`ˆ—)
        11.5.3 grep (ŒŸõƒpƒ^[ƒ“‚ɍ‡’v‚·‚és‚̏o—Í)
        11.5.4 wc (sAŒêAƒoƒCƒg”‚𐔂¦‚Ü‚·)
        11.5.5 sort (ƒeƒLƒXƒgƒtƒ@ƒCƒ‹“à‚̍s‚Ì•À‚בւ¦)
        11.5.6 bc (”’lŒvŽZ—p‚̃vƒƒOƒ‰ƒ~ƒ“ƒOŒ¾Œê)
        11.5.7 tput (’[––‚̏‰Šú‰»‚â terminfo ƒf[ƒ^ƒx[ƒX‚ÌŒŸõ)

  12. ‚¢‚ë‚¢‚ë‚ȃXƒNƒŠƒvƒg
     12.1 ƒfƒBƒŒƒNƒgƒŠã‚Ì‘Sƒtƒ@ƒCƒ‹‚ɃRƒ}ƒ“ƒh‚ð“K—p‚·‚é•û–@
     12.2 ƒTƒ“ƒvƒ‹: ”ñí‚ɃVƒ“ƒvƒ‹‚ȃoƒbƒNƒAƒbƒvƒXƒNƒŠƒvƒg(‰ü—Ç”Å)
     12.3 ƒtƒ@ƒCƒ‹–¼•ÏXƒXƒNƒŠƒvƒg
     12.4 ƒtƒ@ƒCƒ‹–¼•ÏXƒXƒNƒŠƒvƒg(ŠÈˆÕ”Å)

  13. ‚¤‚Ü‚­‚¢‚©‚È‚¢Žž(ƒfƒoƒbƒO)
     13.1 bash ‚̌Ăяo‚µ•û

  14. ‚±‚Ì•¶‘‚ɂ‚¢‚Ä
     14.1 (–³)•ÛØ‚ɂ‚¢‚Ä
     14.2 –|–ó‚ɂ‚¢‚Ä
     14.3 ŽÓŽ«
     14.4 ‰ü’ù—š—ð
     14.5 ŽQlƒz[ƒ€ƒy[ƒW
     14.6 “ú–{Œê–ó‚ɂ‚¢‚Ä

  ______________________________________________________________________

  1.  ƒCƒ“ƒgƒƒ_ƒNƒVƒ‡ƒ“

  1.1.  ÅVƒo[ƒWƒ‡ƒ“‚Ì“üŽèêŠ

  http://www.linuxdoc.org/HOWTO/Bash-Prog-Intro-HOWTO.html

  1.2.  •K—vŽ–€

  GNU/Linux ‚̃Rƒ}ƒ“ƒhƒ‰ƒCƒ“‚Ɉá˜aŠ´‚ª‚È‚­AƒvƒƒOƒ‰ƒ€‚ɂ‚¢‚Ä‚ÌŠî–{“I‚È
  l‚¦•û‚ªg‚ɂ‚¢‚Ä‚¢‚é‚Æ—‰ð‚µ‚â‚·‚¢‚ÆŽv‚¢‚Ü‚·B‚µ‚©‚µA‚±‚̍ûŽq‚̓vƒ
  ƒOƒ‰ƒ~ƒ“ƒO‚Ì‹Zp‘‚Å‚Í‚È‚¢‚̂ŁA‘½‚­‚ÌŠî–{ŠT”O‚ɂ‚¢‚Äà–¾‚ð‰Á‚¦‚Ä(‚ 
  ‚é‚¢‚͏­‚È‚­‚Æ‚à‚»‚Ì“w—Í‚ð‚µ‚Ä)‚¢‚Ü‚·B

  1.3.  ‚±‚Ì•¶‘‚ÌŽg‚¢•û

  ‚±‚Ì•¶‘‚́AŽŸ‚̂悤‚ȏꍇ‚ɖ𗧂‚±‚Æ‚ð”O“ª‚É’u‚¢‚ď‘‚©‚ê‚Ä‚¢‚Ü‚·B

  o  ƒvƒƒOƒ~ƒ“ƒO‚ª‚Ç‚¤‚¢‚¤‚à‚Ì‚©’m‚Á‚Ä‚¢‚āA‚±‚ê‚©‚çƒVƒFƒ‹ƒXƒNƒŠƒvƒg‚Ì
     ƒR[ƒfƒBƒ“ƒO‚ðŽn‚߂悤‚Æ‚µ‚Ä‚¢‚éê‡B

  o  ƒVƒFƒ‹ƒvƒƒOƒ‰ƒ~ƒ“ƒO‚ɂ‚¢‚Ä”™‘R‚Æ‚µ‚©’m‚ç‚È‚¢‚̂ŁAŽQÆ‚Å‚«‚镶Œ£
     ‚ª—~‚µ‚¢ê‡B

  o  Ž©•ª‚ŏ‘‚«Žn‚ß‚é‚É‚ ‚½‚Á‚āAŽÀÛ‚̃XƒNƒŠƒvƒg‚Æ‚»‚̃Rƒƒ“ƒg‚ð‚¢‚­‚Â
     ‚©Œ©‚½‚¢ê‡B

  o  DOS/Windows ŠÂ‹«‚©‚çˆÚs‚µ‚悤‚Æ‚µ‚Ä‚¢‚Ä(‚ ‚é‚¢‚Í‚µ‚Ä‚µ‚Ü‚Á‚Ä)A
     uƒoƒbƒ`ˆ—v‚ðŽÀŒ»‚µ‚½‚¢ê‡B

  o  ‚¢‚í‚ä‚銮‘S‚ɁuƒIƒ^ƒN(nerd)v‚ƌĂ΂ê‚é‚ЂƂŁA•Ð‚Á’[‚©‚ç HOW-TO
     –{‚ð“Ç‚ñ‚Å‚¢‚éê‡B

  2.  ”ñí‚ɃVƒ“ƒvƒ‹‚ȃXƒNƒŠƒvƒg

  ‚±‚Ì HOW-TO ‚́A—á‘è‚ɏd“_‚ð’u‚¢‚āAƒVƒFƒ‹ƒXƒNƒŠƒvƒg‚̃vƒƒOƒ‰ƒ~ƒ“ƒO‚É
  ŠÖ‚·‚éƒqƒ“ƒg‚ðAq‚ׂ悤‚Æ‚µ‚Ä‚¢‚Ü‚·B

  ‚±‚̏͂ł́A‚¢‚­‚‚©‚̃eƒNƒjƒbƒN‚ð—‰ð‚·‚é‚̂ɖ𗧂‚悤‚ÈŠÈ’P‚ȃXƒNƒŠ
  ƒvƒg‚ðŽæ‚èã‚°‚Ü‚·B

  2.1.  “`“‚Ì Hello World ƒXƒNƒŠƒvƒg

               #!/bin/bash
               echo Hello World

  ‚±‚̃XƒNƒŠƒvƒg‚́A“ñs‚µ‚©‚ ‚è‚Ü‚¹‚ñBˆês–ڂ́Aƒtƒ@ƒCƒ‹‚ðŽÀs‚·‚é‚Ì‚É
  ‚ǂ̃vƒƒOƒ‰ƒ€‚ðŽg‚¤‚©‚ðƒVƒXƒeƒ€‚ÉŽwŽ¦‚µ‚Ä‚¢‚Ü‚·B

  “ñs–ڂ́A‚±‚̃vƒƒOƒ‰ƒ€‚ªŽÀs‚·‚é—Bˆê‚Ì–½—ß‚ª‘‚©‚ê‚Ä‚¢‚āA‚»‚ê‚É‚æ‚Á
  ‚Ä’[––‚É "Hello World" ‚Æ•\Ž¦‚³‚ê‚Ü‚·B

  ‚à‚µ‚©‚·‚é‚ƁA./hello.sh: Command not found. ‚Æ•\Ž¦‚³‚ꂽ‚©‚à‚µ‚ê‚Ü‚¹
  ‚ñB‚¨‚»‚ç‚­AÅ‰‚̍s‚Ì "#!/bin/bash" ‚ª³‚µ‚­‚È‚¢‚½‚ß‚Å‚µ‚å
  ‚¤B'whereis bash' ‚Ƒł‚©A``ubash ‚ð’T‚·(10.3)v''‚ðŒ©‚é‚©‚µ‚āA‚»
  ‚̍s‚̏‘‚«•û‚ðŠm”F‚µ‚Ä‚­‚¾‚³‚¢B

  2.2.  ”ñí‚ɃVƒ“ƒvƒ‹‚ȃoƒbƒNƒAƒbƒvƒXƒNƒŠƒvƒg

               #!/bin/bash
               tar -cZf /var/my-backup.tgz /home/me/

  ‚±‚̃XƒNƒŠƒvƒg‚ł́Aƒ^[ƒ~ƒiƒ‹‚ɃƒbƒZ[ƒW‚ð•\Ž¦‚·‚é‚Ì‚Å‚Í‚È‚­Aƒ†[ƒU
  ‚̃z[ƒ€ƒfƒBƒŒƒNƒgƒŠ‚Ì“à—e‚ðˆ³kƒtƒ@ƒCƒ‹(tarball)‚É‚Ü‚Æ‚ß‚Ü‚·B‚±‚ê‚Í
  ŽÀÛ‚ÌŽg—p‚ðˆÓ}‚µ‚½‚à‚Ì‚Å‚Í‚ ‚è‚Ü‚¹‚ñB‚à‚Á‚Æ•Ö—˜‚ȃoƒbƒNƒAƒbƒvƒXƒNƒŠ
  ƒvƒg‚ðA‚±‚Ì•¶‘‚ÅŒã‚قǏЉ‚Ü‚·B

  3.  ƒŠƒ_ƒCƒŒƒNƒgƒVƒ‡ƒ“‚ɂ‚¢‚Ä(redirection)

  3.1.  —˜_‚ÆŠÈ’P‚ȃŠƒtƒ@ƒŒƒ“ƒX

  bash ‚ɂ́Aƒtƒ@ƒCƒ‹‹LqŽq(file descriptor)‚Æ‚µ‚āA•W€“ü—Í (stdin)A•W
  €o—Í(stdout)A‚»‚µ‚Ä•W€ƒGƒ‰[(stderr) ‚Ì 3 ‚‚ª‚ ‚è‚Ü‚·B ( std ‚Í
  standard ‚̈Ӗ¡‚Å‚·B)

  Šî–{“I‚Ɉȉº‚Ì‚±‚Æ‚ª‚Å‚«‚Ü‚·B

  1. stdout ‚ð file ‚ɃŠƒ_ƒCƒŒƒNƒg

  2. stderr ‚ð file ‚ɃŠƒ_ƒCƒŒƒNƒg

  3. stdout ‚ð stderr ‚ɃŠƒ_ƒCƒŒƒNƒg

  4. stderr ‚ð stdout ‚ɃŠƒ_ƒCƒŒƒNƒg

  5. stderr ‚Æ stdout ‚ð file ‚ɃŠƒ_ƒCƒŒƒNƒg

  6. stderr ‚Æ stdout ‚ð stdout ‚ɃŠƒ_ƒCƒŒƒNƒg

  7. stderr ‚Æ stdout ‚ð stderr ‚ɃŠƒ_ƒCƒŒƒNƒg

  (ƒŠƒ_ƒCƒŒƒNƒg\•¶‚Å‚Í)”Žš‚Ì 1 ‚Í stdout ‚ð•\‚µA 2 ‚Í stderr ‚ð•\‚µ‚Ü
  ‚·B

  *ã‹L‚̍€–Ú‚»‚ꂼ‚ê‚ɂ‚¢‚Ä‚ÌŠÈ’P‚ȃƒ‚* less ƒRƒ}ƒ“ƒh‚ðŽg‚¤‚ƁA
  stdout (‚±‚ê‚̓oƒbƒtƒ@‚ÉŽc‚è‚Ü‚·)‚Æ stderr (ƒXƒNƒŠ[ƒ“‚É‚Í•\Ž¦‚³‚ê‚Ü‚·
  ‚ªA‚»‚̃oƒbƒtƒ@‚ðŒ©‚æ‚¤‚Æ‚·‚é‚ƏÁ‹Ž‚³‚ê‚Ä‚µ‚Ü‚¢‚Ü‚·)‚Ì—¼•û‚ðŒ©‚é‚±‚Æ
  ‚ª‚Å‚«‚Ü‚·B

  3.2.  ƒTƒ“ƒvƒ‹: stdout ‚ð file ‚Ö

  ŽŸ‚̏ꍇAƒvƒƒOƒ‰ƒ€‚̏o—Í‚ªƒtƒ@ƒCƒ‹‚ɏ‘‚«ž‚Ü‚ê‚Ü‚·B

               $ ls -l > ls-l.txt

  ã‹L‚Å‚Í ls-l.txt ‚Æ‚¢‚¤ƒtƒ@ƒCƒ‹‚ªì¬‚³‚ê‚Ü‚·B‚»‚µ‚āA'ls -l' ‚Æ‚¢‚¤
  ƒRƒ}ƒ“ƒh‚ðŽÀs‚µ‚½ê‡‚ɃXƒNƒŠ[ƒ“‚É•\Ž¦‚³‚ê‚é“à—e‚ªA‚»‚̃tƒ@ƒCƒ‹‚É•Û
  ‘¶‚³‚ê‚Ü‚·B

  3.3.  ƒTƒ“ƒvƒ‹: stderr ‚ð file ‚Ö

  ŽŸ‚̏ꍇAƒvƒƒOƒ‰ƒ€‚Ì stderr ‚̏o—Í‚ªƒtƒ@ƒCƒ‹‚ɏ‘‚«ž‚Ü‚ê‚Ü‚·B

               $ grep da * 2> grep-errors.txt

  ã‹L‚ł́Agrep-errors.txt ‚Æ‚¢‚¤ƒtƒ@ƒCƒ‹‚ªì¬‚³‚ê‚Ü‚·B‚»‚µ‚āA‚»‚Ì
  ƒtƒ@ƒCƒ‹‚ɂ́A'grep da *' ‚̏o—Í‚Ì‚¤‚¿A“ÇŽÒ‚ªŒ©‚悤‚Æ‚µ‚Ä‚¢‚é‚Í‚¸‚Ì
  stderr ‚Ì•”•ª‚ª‘‚«ž‚Ü‚ê‚Ä‚¢‚Ü‚·B

  3.4.  ƒTƒ“ƒvƒ‹: stdout ‚ð stderr ‚Ö

  ŽŸ‚̏ꍇAƒvƒƒOƒ‰ƒ€‚Ì stderr o—Í‚ªAstdout ‚Æ“¯ˆê‚̃tƒ@ƒCƒ‹‹LqŽq‚É
  ‘‚«ž‚Ü‚ê‚Ü‚·B
               $ grep da * 1>&2

  ã‹L‚ł́AƒRƒ}ƒ“ƒh‚Ì stdout ‚Ì•”•ª‚ª stderr ‚É‘—‚ç‚ê‚Ü‚·B•Ê‚Ì‚â‚è•û‚ª
  ‚ ‚邱‚Æ‚É“ÇŽÒ‚Í‹C•t‚¢‚Ä‚¢‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñB

  3.5.  ƒTƒ“ƒvƒ‹: stderr ‚©‚ç stdout ‚Ö

  ŽŸ‚̏ꍇAƒvƒƒOƒ‰ƒ€‚Ì stderr o—Í‚ªAstdout ‚Æ“¯ˆê‚̃tƒ@ƒCƒ‹‹LqŽq‚É
  ‘‚«ž‚Ü‚ê‚Ü‚·B

               $ grep * 2>&1

  ã‹L‚ł́AƒRƒ}ƒ“ƒh‚Ì stderr ‚Ì•”•ª‚ª stdout ‚É‘—‚ç‚ê‚Ü‚·B‚µ‚½‚ª‚Á‚āA
  ‚à‚µƒpƒCƒv‚ðŽg‚Á‚Ä less ‚É—¬‚¹‚΁A’ʏí‚È‚ç stderr ‚ɏ‘‚«ž‚Ü‚ê‚ďÁ‚¦‚Ä
  ‚µ‚Ü‚¤‚Í‚¸‚̏o—͍s‚ªA stdout ‚É‘—‚ç‚ꂽ‚±‚Æ‚Å•ÛŽ‚³‚ê‚Ä‚¢‚é‚Ì‚ðŠm”F‚Å
  ‚«‚Ü‚·B

  3.6.  ƒTƒ“ƒvƒ‹: stderr ‚Æ stdout ‚©‚ç file ‚Ö

  ŽŸ‚̏ꍇAƒvƒƒOƒ‰ƒ€‚Ì‘S‚Ă̏o—Í‚ªƒtƒ@ƒCƒ‹‚É“ü‚ê‚ç‚ê‚Ü‚·B‚±‚ê‚́AŠ®‘S
  ‚É–Ù‚Á‚ăRƒ}ƒ“ƒh‚ðŽÀs‚³‚¹‚½‚¢‚悤‚È cron ‚ÌŽÀs€–Ú‚ð‘‚­ê‡‚É“K‚µ‚Ä
  ‚¢‚Ü‚·B

               $ rm -f $(find / -name core) &> /dev/null

  cron ƒvƒƒOƒ‰ƒ€‚ÌŽÀs€–Ú‚ðŽv‚¢•‚‚©‚ׂĂقµ‚¢‚Ì‚Å‚·‚ªAã‹L‚́A‚ ‚ç‚ä
  ‚éƒfƒBƒŒƒNƒgƒŠ‚©‚ç "core" ‚ƌĂ΂ê‚éƒtƒ@ƒCƒ‹‚ð‚·‚×‚Äíœ‚·‚é‚à‚Ì‚Å‚·B
  ƒRƒ}ƒ“ƒh‚̏o—Í‚ðŒ©‚¦‚È‚­‚µ‚Ä‚µ‚Ü‚¤ê‡‚́A‚»‚̃Rƒ}ƒ“ƒh‚ª‚Ç‚¤‚¢‚¤ˆ—‚ð
  ‚·‚é‚Ì‚©[•ª”FŽ¯‚µ‚Ä‚¨‚©‚È‚¯‚ê‚΂¢‚¯‚Ü‚¹‚ñB

  4.  ƒpƒCƒv (pipe)

  ‚±‚̏͂ł́AŠÈ’P‚©‚ÂŽÀ—p“I‚ȃpƒCƒv‚ÌŽg‚¢•û‚Æ‚»‚Ì—L—p«‚ɂ‚¢‚Äà–¾‚µ‚Ü
  ‚·B

  4.1.  ‰½‚È‚Ì‚©A‚Ç‚±‚ª‚¢‚¢‚Ì‚©

  ŠÈ’P‚É‚¢‚¤‚ƁAƒpƒCƒv‚ðŽg‚¦‚΁AƒvƒƒOƒ‰ƒ€‚̏o—͂𑼂̃vƒƒOƒ‰ƒ€‚Ì“ü—Í‚Æ
  ‚µ‚Ä—˜—p‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚·B

  4.2.  ƒTƒ“ƒvƒ‹: sed ‚ðŽg‚Á‚½ŠÈ’P‚ȃpƒCƒvˆ—

  ŽŸ‚Ì—á‚ÍŠÈ’P‚ȃpƒCƒv‚ÌŽg‚¢•û‚ðŽ¦‚·‚à‚Ì‚Å‚·B

               $ ls -l | sed -e "s/[aeio]/u/g"

  ã‹L‚ł́AŽŸ‚Ì‚±‚Æ‚ª‹N‚±‚è‚Ü‚·Bæ‚¸ƒRƒ}ƒ“ƒh 'ls -l' ‚ªŽÀs‚³‚êA‚»‚Ì
  o—Í‚ª‰æ–Ê‚É•\Ž¦‚³‚ê‚é‘ã‚í‚è‚ɁAsed ƒvƒƒOƒ‰ƒ€‚É‘—‚ç‚ê (pipe ˆ—‚³
  ‚ê)A¡“x‚Í sed ‚ª‚»‚ê‚ðˆ—‚µ‚ĉæ–Ê‚É•\Ž¦‚µ‚Ü‚·B

  4.3.  ƒTƒ“ƒvƒ‹: 'ls -l *.txt' ‚Ì‘ã‘ÖƒRƒ}ƒ“ƒh

  ‚¨‚»‚ç‚­ŽŸ‚́A'ls -l *.txt' ‚Æ‚·‚é‚æ‚è‚à“‚¢•û–@‚Å‚·B‚±‚ê‚ð—á‘è‚ÉŽæ
  ‚èã‚°‚é‚̂́Aƒtƒ@ƒCƒ‹‚ðƒŠƒXƒgƒAƒbƒv‚·‚é‚Æ‚«‚̃WƒŒƒ“ƒ}‚ð‰ðÁ‚·‚邽‚ß‚Å
  ‚Í‚È‚­A’P‚ɃpƒCƒv‚ÌŽg‚¢•û‚ðà–¾‚µ‚½‚¢‚©‚ç‚Å‚·B

               $ ls -l | grep "\.txt$"

  ã‹L‚ł́A'ls -l' ƒvƒƒOƒ‰ƒ€‚̏o—Í‚ª grep ƒvƒƒOƒ‰ƒ€‚É‘—‚ç‚êA‚»‚±‚Å
  "\.txt$" ‚̐³‹K•\Œ»‚ɍ‡’v‚·‚és‚ª‰æ–ʂɏo—Í‚³‚ê‚Ü‚·B (–ó’: ã‹L‚ʼn~
  ƒ}[ƒN‚ª•\Ž¦‚³‚ê‚éê‡A‚»‚ê‚̓oƒbƒNƒXƒ‰ƒbƒVƒ…‚̈Ӗ¡‚Å‚·B)

  5.  •Ï” (variable)

  •Ï”‚ðŽg‚¦‚È‚¢ƒvƒƒOƒ‰ƒ€Œ¾Œê‚Í‚ ‚è‚Ü‚¹‚ñB‚½‚¾Abash ‚ɂ̓f[ƒ^Œ^(data
  type)‚ª‚ ‚è‚Ü‚¹‚ñBbash ‚̕ϐ”‚́A”ŽšA•¶ŽšA•¶Žš—ñ‚ðŠi”[‚·‚邱‚Æ‚ª‚Å
  ‚«‚Ü‚·B

  •Ï”‚ðéŒ¾‚·‚é•K—v‚Í‚È‚­AŽQÆ‚·‚ׂ«•Ï”‚É’l‚ð‘ã“ü‚·‚ê‚΁A‚»‚ꂾ‚¯‚ōì
  ¬‚Å‚«‚Ü‚·B

  5.1.  ƒTƒ“ƒvƒ‹: •Ï”‚ðŽg‚Á‚½ Hello World!

               #!/bin/bash
               STR="Hello World!"
               echo $STR

  2 s–Ú‚Å STR ‚Æ‚¢‚¤•Ï”‚ðì‚Á‚āA‚»‚ê‚É "Hello World" ‚Æ‚¢‚¤•¶Žš—ñ‚ð‘ã
  “ü‚µ‚Ä‚¢‚Ü‚·B‚±‚̕ϐ”‚́u’lv‚͕ϐ”‚̍ŏ‰‚É "$" ‚ð’u‚­‚±‚Æ‚ÅŽæ‚èo‚¹
  ‚Ü‚·B‚à‚µ "$" ‚Æ‚¢‚¤‹L†‚ðŽg‚í‚È‚©‚Á‚½‚çƒvƒƒOƒ‰ƒ€‚̏o—͈͂Ⴄ‚à‚Ì‚Æ
  ‚È‚èA–]‚ñ‚¾Œ‹‰Ê‚𓾂ç‚ê‚È‚¢‚Æ‚¢‚¤‚±‚Æ‚ð—‰ð‚µ‚Ä(‚ ‚é‚¢‚ÍŽÀÛ‚É‚â‚Á‚Ä
  ‚Ý‚Ä)‚­‚¾‚³‚¢B

  5.2.  ƒTƒ“ƒvƒ‹: ”ñí‚ɃVƒ“ƒvƒ‹‚ȃoƒbƒNƒAƒbƒvƒXƒNƒŠƒvƒg(‰ü—Ç”Å)

               #!/bin/bash
               OF=/var/my-backup-$(date +%Y%m%d).tgz
               tar -cZf $OF /home/me/

  ã‹L‚̃XƒNƒŠƒvƒg‚́A¡‚܂łƂ͏­‚µˆá‚¤‚±‚Æ‚ðÐ‰î‚µ‚Ä‚¢‚Ü‚·B‚Ü‚¸“ñs–Ú
  ‚É‚ ‚é•Ï”‚̍쐬‚Æ‘ã“ü‚ɂ‚¢‚Ä‚Í‚à‚¤Šµ‚ꂽ‚ÆŽv‚¢‚Ü‚·B‚ł́A"$(date
  +%Y%m%d)" ‚Æ‚¢‚¤•\Œ»‚É’–Ú‚µ‚Ä‚­‚¾‚³‚¢BƒXƒNƒŠƒvƒg‚ðŽÀs‚·‚é‚ƁAŠÛƒJƒb
  ƒR‚Ì‚È‚©‚̃Rƒ}ƒ“ƒh‚ªŽÀs‚³‚ê‚āA‚»‚̏o—Í‚ªŽæ‚荞‚Ü‚ê‚é‚悤‚É‚È‚Á‚Ä‚¢‚Ü
  ‚·B

  ‚±‚̃XƒNƒŠƒvƒg‚ł́Adate ƒRƒ}ƒ“ƒh‚Ì(+%Y%m%d)‚Æ‚¢‚¤‘Ž®ƒXƒCƒbƒ`‚ɏ]‚Á
  ‚āAo—Í‚³‚ê‚éƒtƒ@ƒCƒ‹–¼‚ª–ˆ“ú•Ï‚í‚邱‚Æ‚É’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢Bˆá‚Á‚½‘Ž®
  ‚ðŽw’è‚·‚邱‚ƂŁA‚±‚ê‚Ƃ͈قȂéƒtƒ@ƒCƒ‹–¼‚É‚·‚邱‚Æ‚à‚Å‚«‚Ü‚·B

  ‚»‚êˆÈŠO‚ÌŽQlŽ–—á‚Æ‚µ‚āA

  o  echo ls

  o  echo $(ls)

     ‚Æ‚¢‚Á‚½‚à‚Ì‚ª‚ ‚è‚Ü‚·B

  5.3.  ƒ[ƒJƒ‹•Ï”

  ƒ[ƒJƒ‹•Ï”‚́Alocal ‚Æ‚¢‚¤ƒL[ƒ[ƒh‚ðŽg‚Á‚č쐬‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B

          #!/bin/bash
          HELLO=Hello
          function hello {
                  local HELLO=World
                  echo $HELLO
          }
          echo $HELLO
          hello
          echo $HELLO

  ƒ[ƒJƒ‹•Ï”‚ÌŽg‚¢•û‚ɂ‚¢‚ẮAˆÈã‚Ì—á‚ŏ[•ª‚©‚ÆŽv‚¢‚Ü‚·B

  6.  ðŒ§Œä(conditionals)

  ðŒ§Œä‚ðŽg‚¦‚΁A‚ ‚é–½—ß‚ðŽÀs‚ð‚·‚×‚«‚©‚Ç‚¤‚©‚ÌŒˆ’肪‚Å‚«‚Ü‚·B‚»‚µ
  ‚āA‚±‚ÌŒˆ’è‚́AŽ®‚Ì•]‰¿‚É‚æ‚è‚È‚³‚ê‚Ü‚·B

  6.1.  ƒZƒIƒŠ[

  ðŒ§Œä‚ɂ́A‘½‚­‚ÌŒ`Ž®‚ª‚ ‚è‚Ü‚·BÅ‚àŠî–{“I‚ÈŒ`Ž®‚́Auif ðŒŽ®
  then ŽÀs•¶v ‚Å‚ ‚èA‚±‚ÌŽÀs•¶‚ÍðŒŽ®‚Ì•]‰¿‚ª^‚Å‚ ‚é‚Æ‚«‚¾‚¯ŽÀs‚³
  ‚ê‚Ü‚·B" 2 < 1 " ‚Æ‚¢‚¤‚Ì‚Í‹U‚Æ•]‰¿‚³‚ê‚éðŒŽ®‚Å‚ ‚èA" 2 > 1 " ‚Æ‚¢
  ‚¤‚̂͐^‚Æ•]‰¿‚³‚ê‚éðŒŽ®‚Å‚·B

  ‚Ü‚½AðŒ§Œä‚́Auif ðŒŽ® then ŽÀs•¶1 else ŽÀs•¶2 v‚Æ‚¢‚¤Œ`Ž®‚à
  ‚Æ‚è‚Ü‚·B‚±‚±‚ł́AðŒŽ®‚ª^‚Ì‚Æ‚«ŽÀs•¶ 1 ‚ªŽÀs‚³‚êA‚»‚êˆÈŠO‚Ì‚Æ
  ‚«‚ÍŽÀs•¶ 2 ‚ªŽÀs‚³‚ê‚Ü‚·B

  ðŒ§Œä‚É‚Í‚³‚ç‚É•Ê‚ÌŒ`Ž®‚à‚ ‚è‚Ü‚·Buif ðŒŽ®1 then ŽÀs•¶1  else
  if ðŒŽ®2  ŽÀs•¶ 2  else ŽÀs•¶3 v ‚Å‚·B‚±‚ÌŒ`Ž®‚ł́A "else if ð
  ŒŽ®2  then ŽÀs•¶2 " ‚Æ‚¢‚¤‚Ì‚ª‰Á‚í‚Á‚½‚¾‚¯‚Å‚·‚ªA‚±‚ê‚Í‚à‚µðŒŽ®2
  ‚Ì•]‰¿‚ª^‚È‚ç‚ÎŽÀs•¶2  ‚ðŽÀs‚·‚é‚à‚Ì‚Å‚·B‚»‚Ì‘¼‚Ì•”•ª‚ɂ‚¢‚ẮA
  “ÇŽÒ‚Ì‘z‘œ’Ê‚è‚Å‚·B(‚±‚ê‚Ü‚Å‚ÌŒ`Ž®‚ð‚²——‚­‚¾‚³‚¢)

  \•¶‚ÉŠÖ‚µ‚Ä‚Å‚·‚ªA bash ‚Å if §Œä\‘¢‚ðŽg‚¤‚Æ‚«‚ÌŠî–{‚͈ȉº‚̂悤‚È
  ‚à‚Ì‚Å‚·B

          if [ðŒŽ®]
          then
          (if ‚ÌðŒ‚ª^‚¾‚Á‚½‚Æ‚«‚Ì)ŽÀsƒR[ƒh
          fi

  6.2.  ƒTƒ“ƒvƒ‹: if .. then ‚É‚æ‚éŠî–{“I‚ÈðŒ§Œä‚Ì—á

          #!/bin/bash
          if [ "foo" = "foo" ]; then
             echo expression evaluated as true
          fi

  ƒuƒŒ[ƒX [ ] “à‚ÌðŒŽ®‚ª^‚Å‚ ‚Á‚½ê‡A"then" ‚Æ‚¢‚¤•¶Žš‚ÌŒã‚ɁAŽÀs
  ‚³‚ê‚éƒR[ƒh‚ª‘‚©‚ê‚Ä‚¢‚Ü‚·B‚»‚µ‚Ä‚»‚ÌŒã‚ɁAðŒ§Œä‚ÉŠî‚¢‚ÄŽÀs‚³
  ‚ê‚éƒR[ƒh‚̏I—¹‚ðŽwŽ¦‚·‚é "fi" ‚ª’u‚©‚ê‚Ä‚¢‚Ü‚·B

  6.3.  ƒTƒ“ƒvƒ‹: "if .. then ... else"  ‚ðŽg‚Á‚½Šî–{“I‚ÈðŒ§Œä‚Ì—á

               #!/bin/bash
               if [ "foo" = "foo" ]; then
                  echo expression evaluated as true
               else
                  echo expression evaluated as false
               fi

  6.4.  ƒTƒ“ƒvƒ‹: •Ï”‚𔺂Á‚½ðŒ§Œä

               #!/bin/bash
               T1="foo"
               T2="bar"
               if [ "$T1" = "$T2" ]; then
                   echo expression evaluated as true
               else
                   echo expression evaluated as false
               fi

  7.  for, while, until ‚É‚æ‚郋[ƒv

  ‚±‚̏͂ł́Afor, while, ‚»‚µ‚Ä util ‚É‚æ‚郋[ƒv‚ɂ‚¢‚ďq‚ׂ܂·B
  bash ‚Ì for ‚́A‘¼‚ÌŒ¾Œê‚Å‚ÌŽg‚¢•û‚Ǝ኱ˆÙ‚È‚è‚Ü‚·BŠî–{“I‚ɂ́A‚ ‚镶
  Žš—ñ“à‚Ì’PŒê‚ð‚ ‚½‚Ü‚©‚珇‚É”½•œˆ—‚·‚é‚à‚Ì‚Å‚·B

  while ‚́A§ŒäŽ®‚ª^‚̊Ԃ̓R[ƒh‚ðŽÀs‚µ‚Ä‚¢‚āA‹U‚É‚È‚Á‚½‚Æ‚« (‚ ‚é‚¢
  ‚ÍŽÀsƒR[ƒh“à‚É break ‚ª–¾Ž¦‚³‚ê‚Ä‚¢‚éê‡)‚É‚Ì‚Ý’âŽ~‚µ‚Ü‚·B

  until ƒ‹[ƒv‚́A§ŒäŽ®‚ª‹U‚Æ•]‰¿‚³‚ê‚Ä‚¢‚éŠÔ‚̓R[ƒh‚ªŽÀs‚³‚ê‚é‚Æ‚¢‚¤
  “_‚ðœ‚­‚ƁAwhile ƒ‹[ƒv‚Æ‚Ù‚Ú“¯‚¶‚Å‚·Bwhile ‚Æ until ‚ªŽ—‚Ä‚¢‚é‚Æ
  Žv‚Á‚½‚È‚çA‚»‚ê‚͐³‚µ‚¢l‚¦‚Å‚·B

  7.1.  For ‚̃Tƒ“ƒvƒ‹

               #!/bin/bash
               for i in $( ls ); do
                   echo item: $i
               done

  “ñs–ڂŁA•Ï” i ‚ªéŒ¾‚³‚ê‚Ä‚¢‚Ü‚·B‚±‚ê‚ɂ́A$( ls ) ‚É‚æ‚Á‚ďo—Í‚³
  ‚ê‚é—lX‚È’l‚ª(‡”Ô‚É)‘ã“ü‚³‚ê‚Ä‚¢‚«‚Ü‚·BŽOs–ڂ́A•K—v‚Å‚ ‚ê‚΂à‚Á‚Æ
  ’·‚­‚Å‚«‚Ü‚·B‚·‚È‚í‚¿AŽls–Ú‚Ì done ‚Ì‘O‚É•¡”‚̍s‚ª‘¶Ý‚µ‚Ä‚à‚©‚Ü‚¢
  ‚Ü‚¹‚ñBŽls–Ú‚Ì done ‚́A•Ï” $i ‚Ì’l‚ðŽg—p‚µ‚Ä‚¢‚½ƒR[ƒh‚ª‚»‚±‚ŏI—¹
  ‚µ‚½‚±‚Æ‚ðŽ¦‚µ‚Ä‚¢‚Ä‚¢‚Ü‚·B‚µ‚½‚ª‚Á‚āA$i ‚ɐV‚µ‚¢’l‚ð‘ã“ü‚·‚邱‚Æ‚ª
  ‰Â”\‚Å‚·Bã‹L‚́A‚Í‚Ù‚Æ‚ñ‚LjӖ¡‚ª‚È‚¢ƒXƒNƒŠƒvƒg‚Å‚·Bfor ƒ‹[ƒv‚ðŽg—p
  ‚·‚é‚à‚Á‚Æ—L‰v‚È•û–@‚́AˆÈ‘O‚Ì—á‘è‚É‚ ‚Á‚½‚悤‚ɁA‚ ‚éŽí‚̃tƒ@ƒCƒ‹‚¾‚¯
  ‚ð‘I‘ð“I‚ɏˆ—‚·‚éê‡‚ÉŽg‚¤‚±‚Æ‚¾‚ÆŽv‚¢‚Ü‚·B

  7.2.  C Œ¾Œê‚ÉŽ—‚½ for

  Fiesh ‚³‚ñ‚©‚çˆÈ‰º‚̂悤‚ÈŒ`Ž®‚̃‹[ƒv‚ð•t‚¯‰Á‚¦‚½‚ç‚Ç‚¤‚©‚ÆŒ¾‚í‚ê‚Ü‚µ
  ‚½B‚±‚Ì for ƒ‹[ƒv‚́AC Œ¾Œê‚â Perl ‚Ì for ƒ‹[ƒv‚É—ÞŽ—‚µ‚½Žg‚í‚ê‚©‚½
  ‚ð‚µ‚Ä‚¢‚Ü‚·B

               #!/bin/bash
               for i in `seq 1 10`;
               do
                       echo $i
               done

  7.3.  while ‚̃Tƒ“ƒvƒ‹

               #!/bin/bash
               COUNTER=0
               while [  $COUNTER -lt 10 ]; do
                   echo The counter is $COUNTER
                   let COUNTER=COUNTER+1
               done

  ã‹L‚̃XƒNƒŠƒvƒg‚́A(C, Pascal, Perl ‚Æ‚¢‚Á‚½)—L–¼‚ÈŒ¾Œê‚Ì for ‚̐§Œä
  \‘¢‚ð^Ž—‚½‚à‚Ì‚Å‚·B

  7.4.  until ‚̃Tƒ“ƒvƒ‹

               #!/bin/bash
               COUNTER=20
               until [  $COUNTER -lt 10 ]; do
                   echo COUNTER $COUNTER
                   let COUNTER-=1
               done

  8.  ŠÖ”(functions)

  ‚Ù‚Æ‚ñ‚Ç‚Ç‚ñ‚ȃvƒƒOƒ‰ƒ€‚É“–‚Ă͂܂邱‚Æ‚Å‚·‚ªAŠÖ”(function)‚ðŽg‚¦
  ‚΁A‚æ‚è˜_—“I‚ɈêŒQ‚̃R[ƒh‚ðƒOƒ‹[ƒv‰»‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B‚Ü‚½A_”é
  “I‚Æ‚à‚¢‚¦‚éÄ‹A–@(recursion)‚ðŽg‚¤‚±‚Æ‚à‰Â”\‚É‚È‚è‚Ü‚·B

  ŠÖ”‚̐錾‚́A "function my_func { my_code }" ‚Ə‘‚­‚¾‚¯‚Å‚Å‚«‚Ü‚·B

  ŠÖ”‚̌Ăяo‚µ‚́A‘¼‚̃vƒƒOƒ‰ƒ€‚̌Ăяo‚µ‚Æ“¯‚¶‚ŁA‚»‚̊֐”–¼‚ð‘‚­‚¾
  ‚¯‚Å‚·B

  8.1.  ŠÖ”‚̃Tƒ“ƒvƒ‹

               #!/bin/bash
               function quit {
                   exit
               }
               function hello {
                   echo Hello!
               }
               hello
               quit
               echo foo

  “ñs–Ú‚©‚çŽls–Ú‚É‚©‚¯‚ẮA"quit" ‚Æ‚¢‚¤ŠÖ”‚ª‹Lq‚³‚ê‚Ä‚¢‚Ü‚·BŒÜs
  –Ú‚©‚玵s–Ú‚É‚©‚¯‚ẮA"hello" ‚Æ‚¢‚¤ŠÖ”‚ª‹Lq‚³‚ê‚Ä‚¢‚Ü‚·B‚±‚̃XƒN
  ƒŠƒvƒg‚ª‰½‚ð‚µ‚Ä‚¢‚é‚©Š®‘S‚É”cˆ¬‚Å‚«‚È‚¢‚È‚çAŽÀÛ‚ÉŽ©•ª‚ŏ‘‚¢‚āAŽÀs
  ‚µ‚Ä‚Ý‚Ä‚­‚¾‚³‚¢B

  ŠÖ”‚́A‰½‚ç‚©‚Ì“Á’è‚Ì—lŽ®‚É‚æ‚ééŒ¾‚ð•K—v‚Æ‚µ‚È‚¢‚Æ‚¢‚¤‚±‚Æ‚É’ˆÓ‚µ‚Ä
  ‚­‚¾‚³‚¢B

  ‚±‚̃XƒNƒŠƒvƒg‚ðŽÀs‚·‚é‚ƁAÅ‰‚É "hello" ŠÖ”‚ªŒÄ‚яo‚³‚êAŽŸ‚É
  "quit" ŠÖ”‚ªŒÄ‚яo‚³‚ê‚Ü‚·B‚»‚µ‚ăvƒƒOƒ‰ƒ€‚͏\s–Ú‚Ü‚Å‚ÍŽÀs‚³‚ê‚È
  ‚¢‚±‚Æ‚É‹C•t‚­‚Å‚µ‚傤B

  8.2.  ƒpƒ‰ƒ[ƒ^[‚ðŽæ‚éŠÖ”‚̃Tƒ“ƒvƒ‹

               #!/bin/bash
               function quit {
                   exit
               }
                   function e {
                       echo $1
                   }
               e Hello
               e World
               quit
               echo foo

  ã‹L‚̃vƒƒOƒ‰ƒ€‚́A‘O‹L‚̃vƒƒOƒ‰ƒ€‚Æ‚Ù‚Ú“¯ˆê‚Å‚·BŽå‚ȈႢ‚́AŠÖ”
  "e" ‚Ì‘¶Ý‚Å‚·B‚±‚̊֐”‚͎󂯎æ‚Á‚½‘æˆêˆø”‚ð•\Ž¦‚µ‚Ü‚·Bˆø”‚́AŠÖ”
  ‚Ì“à•”‚É‚ ‚é‚Æ‚«‚Å‚àAƒXƒNƒŠƒvƒg‚É’¼Ú“n‚µ‚½‚Æ‚«‚Æ“¯‚¶‚悤‚Ɉµ‚í‚ê‚Ü
  ‚·B

  9.  ƒ†[ƒUƒCƒ“ƒ^[ƒtƒFƒCƒX

  9.1.  ŠÈ’P‚ȃƒjƒ…[‚ðì‚邽‚ß‚É select ‚ðŽg‚¤

               #!/bin/bash
               OPTIONS="Hello Quit"
               select opt in $OPTIONS; do
                   if [ "$opt" = "Quit" ]; then
                     echo done
                     exit
                   elif [ "$opt" = "Hello" ]; then
                     echo Hello World
                   else
                     clear
                     echo bad option
                   fi
               done

  ‚à‚µã‹L‚̃XƒNƒŠƒvƒg‚ðŽÀs‚µ‚½‚È‚çAƒeƒLƒXƒgƒx[ƒX‚̃ƒjƒ…[‚Æ‚¢‚¤ƒvƒ
  ƒOƒ‰ƒ}‚̂ЂƂ‚̖²‚ªŽÀŒ»‚µ‚Ä‚¢‚é‚Ì‚ª•ª‚©‚é‚ÆŽv‚¢‚Ü‚·B‚Ü‚½ for ‚̐§Œä
  \‘¢‚ÆŽ—‚Ä‚¢‚邱‚Æ‚É‚à‹C•t‚¢‚½‚©‚à‚µ‚ê‚Ü‚¹‚ñB$OPTIONS ‚É‘ã“ü‚³‚ꂽŒê
  (word)‚ð‚ЂƂ‚¸‚ƒ‹[ƒv‚³‚¹‚é‘ã‚í‚è‚ɁAƒvƒƒ“ƒvƒg‚ðo—Í‚µ‚Ä‚¢‚é‚Æ‚¢‚¤
  ˆá‚¢‚ª‚ ‚邾‚¯‚¾‚©‚ç‚Å‚·B

  9.2.  ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“‚ðŽg‚Á‚Ä‚Ý‚é

               #!/bin/bash
               if [ -z "$1" ]; then
                   echo usage: $0 directory
                   exit
               fi
               SRCD=$1
               TGTD="/var/backups/"
               OF=home-$(date +%Y%m%d).tgz
               tar -cZf $TGTD$OF $SRCD

  ã‹L‚̃XƒNƒŠƒvƒg‚ª‰½‚ð‚·‚é‚©‚́A‚à‚¤‚¨•ª‚©‚è‚Å‚µ‚傤BÅ‰‚ÌðŒ§Œä‚Ì
  Ž®‚́AƒvƒƒOƒ‰ƒ€‚ªˆø” ($1)‚ðŽó‚¯Žæ‚Á‚½‚©‚Ç‚¤‚©‚𒲂ׂé‚à‚Ì‚Å‚·B‚»‚µ
  ‚āAˆø”‚ðŽó‚¯Žæ‚ç‚È‚©‚Á‚½‚Æ‚«‚ÍŠÈ’P‚ÈŽg—p•û–@‚ɂ‚¢‚ẴƒbƒZ[ƒW‚ð•\
  Ž¦‚µ‚ďI—¹‚µ‚Ü‚·BƒXƒNƒŠƒvƒg‚ÌŽc‚è‚Ì•”•ª‚́A‚±‚ÌŽž“_‚Å‚Í–¾—Ä‚¾‚ÆŽv‚¢‚Ü
  ‚·B

  10.  ‚»‚Ì‘¼‚̃XƒNƒŠƒvƒg

  10.1.  read ‚ðŽg‚Á‚ㆁ[ƒU‚Ì“ü—Í‚ð“ǂݍž‚Þ

  ƒ†[ƒU‚ɉ½‚ç‚©‚Ì“ü—͂𑣂µ‚½‚¢‚ÆŽv‚¤ê‡‚ª‚æ‚­‚ ‚é‚à‚Ì‚Å‚·B‚»‚ê‚ðŽÀŒ»
  ‚·‚é•û–@‚Í‚¢‚­‚‚©‘¶Ý‚µ‚Ü‚·‚ªAˆÈ‰º‚Í‚»‚ê‚ç‚Ì‚¤‚¿‚̂ЂƂ‚ł·B

               #!/bin/bash
               echo Please, enter your name
               read NAME
               echo "Hi $NAME!"

  ã‹L‚Ì•ÏŒ`‚Æ‚µ‚āAread ‚ðŽg‚Á‚Ä•¡”‚Ì’l‚ðŽó‚¯Žæ‚邱‚Æ‚à‚Å‚«‚Ü‚·BŽŸ‚Ì
  —á‘è‚Í‚»‚ê‚𖾂炩‚É‚·‚é‚à‚Ì‚Å‚·B

               #!/bin/bash
               echo Please, enter your firstname and lastname
               read FN LN
               echo "Hi! $LN, $FN !"

  10.2.  ”’l‚Ì•]‰¿

  ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“(‚ ‚é‚¢‚̓VƒFƒ‹)‚ŁAŽŸ‚̂悤‚É‘Å‚Á‚Ä‚Ý‚Ä‚­‚¾‚³‚¢B

               $ echo 1 + 1

  2 ‚ªo—Í‚³‚ê‚é‚ÆŠú‘Ò‚µ‚Ä‚¢‚½‚È‚çA‚ª‚Á‚©‚肵‚½‚±‚Æ‚Å‚µ‚傤B bash ‚ɐ”
  ’l‚ðŒvŽZ‚³‚¹‚½‚¢‚Æ‚«‚́A‚Ç‚¤‚µ‚½‚ç‚¢‚¢‚Ì‚Å‚µ‚傤H‰ðŒˆô‚ÍŽŸ‚̂悤‚É‚·
  ‚邱‚Æ‚Å‚·B

               $ echo $((1 + 1))

  ã‹L‚ł́A‚æ‚胍ƒWƒJƒ‹‚ȏo—Í‚ª‚È‚³‚ꂽ‚±‚Æ‚ÆŽv‚¢‚Ü‚·B‚±‚ê‚͐”Ž®‚ð•]‰¿
  ‚µ‚½‚Æ‚¢‚¤‚±‚Æ‚Å‚·B‚Ü‚½AŽŸ‚̂悤‚È•\Œ»‚Å‚à“¯‚¶‚±‚Æ‚ª‚Å‚«‚Ü‚·B

               $ echo $[ 1 + 1 ]

  •ª”‚â‚ ‚é‚¢‚Í‚à‚Á‚Æ•¡ŽG‚Ȑ”Šw“Iˆ—‚ª•K—v‚É‚È‚Á‚½ê‡A‚ ‚é‚¢‚͐”Ž®‚Å
  —V‚Ñ‚½‚¢‚Æ‚«‚Ȃǂ́A”Ž®•]‰¿‚Ì‚½‚ß‚Ì bc ‚Æ‚¢‚¤ƒRƒ}ƒ“ƒh‚ªŽg‚¦‚Ü‚·BƒRƒ}
  ƒ“ƒhƒvƒƒ“ƒvƒgã‚Å "echo $[3/4]" ‚ÆŽÀs‚µ‚Ä‚àAbash ‚͐®”‚Å‚µ‚©“š‚¦‚ð
  •Ô‚¹‚È‚¢‚̂ŁAŒ‹‰Ê‚Í 0 ‚Æ‚È‚è‚Ü‚·B‚µ‚©‚µA"echo 3/4 | bc -l" ‚ÆŽÀs‚·
  ‚ê‚΁A0.75 ‚Æ‚¢‚¤³‚µ‚¢“š‚¦‚ª•Ô‚Á‚Ä‚«‚Ü‚·B

  10.3.  bash ‚ð’T‚·

  Mike ‚©‚ç‚̃ƒbƒZ[ƒW‚ðŒfÚ‚µ‚Ü‚·B(ŽÓŽ«‚ðŒ©‚Ä‚­‚¾‚³‚¢)

  ‚ ‚È‚½‚Í‚¢‚‚à #!/bin/bash ‚Æ‚¢‚¤‚Ì‚ðŽg‚Á‚Ä‚¢‚Ü‚·‚ªAbash ‚ª‚Ç‚±‚É‚ ‚é
  ‚Ì‚©’T‚·•û–@‚ð—Ꭶ‚µ‚½‚Ù‚¤‚ª‚¢‚¢‚ÆŽv‚¢‚Ü‚·B"bash ‚ð‚»‚ÌêŠ‚É’u‚¢‚Ä‚µ
  ‚Ü‚¦‚΂¢‚¢‚Ì‚Å‚·‚ªA‚·‚ׂẴ}ƒVƒ“‚ª‚»‚ê‚ð‚µ‚Ä‚¢‚é‚킯‚Å‚Í‚ ‚è‚Ü‚¹‚ñB
  ƒ‹[ƒgƒfƒBƒŒƒNƒgƒŠ‚©‚çA'find ./ -name bash' ‚ðŽÀs‚·‚ê‚Βʏí‚Í’T‚µo
  ‚¹‚é‚Í‚¸‚Å‚·B

  ƒ`ƒFƒbƒN‚·‚ׂ«‚Ȃ̂́AŽŸ‚̂悤‚ȏꏊ‚Å‚µ‚傤B

          ls -l /bin/bash
          ls -l /sbin/bash
          ls -l /usr/lodal/bin/bash
          ls -l /usr/bin/bash
          ls -l /usr/sbin/bash
          ls -l /usr/local/sbin/bash

  (‚±‚êˆÈŠO‚̃fƒBƒŒƒNƒgƒŠ‚Í‚·‚®‚ÉŽv‚¢•‚‚©‚Ñ‚Ü‚¹‚ñ... ƒVƒXƒeƒ€‚ªˆá‚Á‚Ä
  ‚àA‚±‚ê‚Ü‚Å‚Í‚±‚Ì’†‚©‚猩‚‚©‚éê‡‚ª‚Ù‚Æ‚ñ‚Ç‚Å‚µ‚½B) ‚»‚ê‚©
  ‚çA'which bash' ‚ðŽg‚Á‚Ä‚Ý‚é‚Ì‚à‚¢‚¢‚ÆŽv‚¢‚Ü‚·B

  10.4.  ƒvƒƒOƒ‰ƒ€‚Ì–ß‚è’l‚ðŠl“¾‚·‚é•û–@

  bash ‚ł́AƒvƒƒOƒ‰ƒ€‚Ì–ß‚è’l‚ð $? ‚Æ‚¢‚¤“ÁŽê‚ȕϐ”‚É“ü‚ê‚Ä‚¨‚­‚±‚Æ‚ª
  ‚Å‚«‚Ü‚·BˆÈ‰º‚́AƒvƒƒOƒ‰ƒ€‚Ì–ß‚è’l‚ðŠl“¾‚·‚é•û–@‚ð‘‚¢‚½‚à‚Ì‚Å‚·B‚½
  ‚¾‚µA /dada ‚Æ‚¢‚¤ƒfƒBƒŒƒNƒgƒŠ‚ÍŽÀÝ‚µ‚Ü‚¹‚ñB(‚±‚ê‚à Mike ‚©‚ç‚Ì’ñˆÄ
  ‚ðÚ‚¹‚½‚à‚Ì‚Å‚·)

               #!/bin/bash
               cd /dada &> /dev/null
               echo rv: $?
               cd $(pwd) &> /dev/null
               echo rv: $?

  10.5.  ƒRƒ}ƒ“ƒho—Í‚ðŠl“¾‚·‚é•û–@

  ˆÈ‰º‚ÌŠÈ’P‚ȃXƒNƒŠƒvƒg‚́A‚·‚ׂẴf[ƒ^ƒx[ƒXã‚ð’T‚µ‚Ä‘S•”‚̃e[ƒuƒ‹
  ‚ð•\Ž¦‚·‚é‚Æ‚¢‚¤‚à‚Ì‚Å‚·( MySQL ‚ªƒCƒ“ƒXƒg[ƒ‹‚³‚ê‚Ä‚¢‚邱‚Æ‚ª‘O’ñ‚Å
  ‚·)B‚±‚Ì’†‚Ì 'mysql' ‚Æ‚¢‚¤ƒRƒ}ƒ“ƒh•”•ª‚ð•ÏX‚µ‚āA—LŒø‚ȃ†[ƒU–¼‚ƃp
  ƒXƒ[ƒh‚ªŽg‚¦‚é‚悤‚É‚µ‚Ä‚­‚¾‚³‚¢B

               #!/bin/bash
               DBS=`mysql -uroot  -e"show databases"`
               for b in $DBS ;
               do
                       mysql -uroot -e"show tables from $b"
               done

  10.6.  •¡”‚̃\[ƒXƒtƒ@ƒCƒ‹

  ƒRƒ}ƒ“ƒhƒ\[ƒX‚Æ‚µ‚Ä•¡”‚̃tƒ@ƒCƒ‹‚ðŽg‚¤‚±‚Æ‚ª‚Å‚«‚Ü‚·B

  ì¬—\’è( TO DO )

  11.  ŽQÆƒe[ƒuƒ‹

  11.1.  •¶Žš—ñ”äŠr‰‰ŽZŽq

          (1) s1  =  s2    s1 ‚Æ s2 ‚ª“¯ˆê
          (2) s1 !=  s2    s1 ‚Æ s2 ‚ª“¯ˆê‚Å‚È‚¢
          (3) s1  <  s2    ì¬’†
          (4) s1  >  s2    ì¬’†
          (5) -n s1        s1 ‚ª null ‚Å‚È‚¢(ˆê•¶ŽšˆÈã‚ðŠÜ‚ñ‚Å‚¢‚é)
          (6) -z s1        s1 ‚ª null ‚Å‚ ‚é

  11.2.  •¶Žš—ñ”äŠr‚ÌŽÀ—á

  ‚Ó‚½‚‚̕¶Žš—ñ‚ð”äŠr‚·‚é

               #!/bin/bash
               S1='string'
               S2='String'
               if [ $S1=$S2 ];
               then
                       echo "S1('$S1') is not equal to S2('$S2')"
               fi
               if [ $S1=$S1 ];
               then
                       echo "S1('$S1') is equal to S1('$S1')"
               fi

  ‚±‚±‚ŁAã‹L‚Ì if [ $1 = $2 ] ‚ÉŠÖ‚µ‚Ä Andrea Beck ‚ª‘—‚Á‚Ä‚­‚ꂽƒ[
  ƒ‹‚̈ꕶ‚ðˆø—p‚µ‚Ü‚·B

        ‚ ‚Ü‚è‚¢‚¢l‚¦‚Æ‚ÍŒ¾‚¦‚Ü‚¹‚ñB‚à‚µA$S1 ‚© $S2 ‚Ì‚Ç‚¿‚ç‚©‚ª‹ó‚̏ꍇA
        ƒp[ƒTƒGƒ‰[‚É‚È‚é‚©‚ç‚Å‚·Bx$1=x$2 ‚© "$1"="$2" ‚Æ‚µ‚½‚Ù‚¤‚ª‚æ‚¢‚Å
        ‚µ‚傤B

  11.3.  ”’l‰‰ŽZŽq

          +
          -
          *
          /
          % (è—])

  11.4.  ”’lŠÖŒW‰‰ŽZŽq

          -gt  ( >  )
          -le  ( <= )
          -ge  ( >= )
          -eq  ( == )
          -ne  ( != )

  C ƒvƒƒOƒ‰ƒ}‚ªŽg‚Á‚Ä‚¢‚鉉ŽZŽq‚ɂ‚¢‚Ä‚àAŠÛƒJƒbƒR‚ð•t‚¯‚đΉžŠÖŒW‚ðŽ¦
  ‚µ‚Ü‚µ‚½B

  11.5.  •Ö—˜‚ȃRƒ}ƒ“ƒh

  ‚±‚̃ZƒNƒVƒ‡ƒ“‚Í Kees (ŽÓŽ«‚ðŒ©‚Ä‚­‚¾‚³‚¢)‚É‚æ‚Á‚ăŠƒ‰ƒCƒg‚³‚ꂽ‚à‚Ì‚Å
  ‚·B

  ˆÈ‰º‚̃Rƒ}ƒ“ƒh‚Ì‚È‚©‚ɂ́AŠ®‘S‚ȃvƒƒOƒ‰ƒ~ƒ“ƒOŒ¾Œê‚ð“à•ï‚µ‚Ä‚¢‚é‚Æ‚¢‚¦
  ‚»‚¤‚È‚à‚Ì‚à‚ ‚è‚Ü‚·B‚»‚ê‚ç‚̃Rƒ}ƒ“ƒh‚ðŽæ‚èã‚°‚āAŠî–{“I—p–@‚¾‚¯‚ðà
  –¾‚µ‚æ‚ÆŽv‚¢‚Ü‚·BÚ×‚ȉðà‚ɂ‚¢‚ẮAƒRƒ}ƒ“ƒh‚̃}ƒjƒ…ƒAƒ‹ƒy[ƒW‚ð‚Ý
  ‚Ä‚­‚¾‚³‚¢B

  11.5.1.  sed (stream editor)

  sed ‚̓mƒ“EƒCƒ“ƒ^ƒ‰ƒNƒeƒBƒu‚ȃGƒfƒBƒ^‚Å‚·BƒJ[ƒ\ƒ‹‚ð‰æ–ʏã‚Å“®‚©‚µ‚È
  ‚ª‚çƒtƒ@ƒCƒ‹‚ɕύX‚ð‰Á‚¦‚é‚©‚í‚è‚ɁA•ÒW‚ÉŠÖ‚·‚éŽwŽ¦‚ƕҏW‚·‚ׂ«ƒtƒ@ƒC
  ƒ‹–¼‚ð‘‚«ž‚ñ‚¾ƒXƒNƒŠƒvƒg‚ðŽg—p‚µ‚Ü‚·B‚Ü‚½Ased ‚͈êŽí‚̃tƒBƒ‹ƒ^‚Å‚ 
  ‚é‚ƍl‚¦‚邱‚Æ‚à‚Å‚«‚Ü‚·B‚¢‚­‚‚©—á‚ðŒ©‚Ä‚Ý‚Ü‚µ‚傤B

               $ sed 's/to_be_replaced/replaced/g' /tmp/dummy

  ã‹L‚É‚¨‚¢‚āAsed ‚́A/tmp/dummy ‚Æ‚¢‚¤ƒtƒ@ƒCƒ‹‚ð“ǂݍž‚ñ‚ŁA•¶Žš—ñ
  "to_be_replaced" ‚𕶎š—ñ "replaced" ‚É’uŠ·‚µ‚Ü‚·B‚»‚ÌŒ‹‰Ê‚Í•W€o
  —Í(’ʏí‚̓Rƒ“ƒ\[ƒ‹)‚ɏo—Í‚³‚ê‚Ü‚·‚ªAã‹LƒRƒ}ƒ“ƒhƒ‰ƒCƒ“‚Ì––”ö‚É(—Ⴆ
  ‚Î) '> capture' ‚Æ•t‚¯‰Á‚¦‚é‚È‚çA "capture" ‚Æ‚¢‚¤–¼‘O‚̃tƒ@ƒCƒ‹‚É
  sed ‚̏o—ÍŒ‹‰Ê‚𑗂邱‚Æ‚à‚Å‚«‚Ü‚·B

          $ sed 12, 18d /tmp/dummy

  ã‹L‚Ì—á‚ŁAsed ‚Í 12 ‚©‚ç 18 s–Ú‚Ü‚Å‚ðœ‚­‘S‚Ă̍s‚ð•\Ž¦‚µ‚Ü‚·B‚±‚Ì
  ƒRƒ}ƒ“ƒh‚É‚æ‚Á‚ÄŒ³‚̃tƒ@ƒCƒ‹‚ɕύX‚ª‰Á‚¦‚ç‚ê‚邱‚Æ‚Í‚ ‚è‚Ü‚¹‚ñB

  11.5.2.  awk (ƒf[ƒ^ƒtƒ@ƒCƒ‹‚âƒeƒLƒXƒg‚ÌŒŸõ‚Ɛ®Œ`ˆ—)

  AWK ƒvƒƒOƒ‰ƒ~ƒ“ƒOŒ¾Œê‚É‚Í‘½‚­‚ÌŽÀ‘•‚ª‘¶Ý‚µ‚Ü‚·B(Å‚à—L–¼‚ȃCƒ“ƒ^[
  ƒvƒŠƒ^‚́AGNU ‚Ì gawk ‚ƁuV‚µ‚¢ awkv ‚Å‚ ‚é mawk ‚Å‚·B) AWK ‚ÌŒ´—
  ‚Í’Pƒ‚Å‚·Bƒpƒ^[ƒ“‚ð’T‚µ‚āA‡’v‚µ‚½ƒpƒ^[ƒ“(pattern)‘S‚Ăɑ΂µ‚Ä‚È
  ‚ñ‚ç‚©‚̏ˆ—(action)‚ðs‚¤‚Æ‚¢‚¤‚±‚Æ‚Å‚·B

  Ä“xAˆÈ‰º‚̂悤‚ȍs‚ðŠÜ‚Þƒ_ƒ~[ƒtƒ@ƒCƒ‹‚ðì‚è‚Ü‚µ‚½B

          test123
          test
          tteesstt

               $ awk '/test/ {print}' /tmp/dummy
               test123
               test

  ã‹L‚É‚¨‚¢‚āAAWK ‚ª’T‚»‚¤‚Æ‚µ‚½ƒpƒ^[ƒ“(pattern)‚Í "test" ‚Å‚ 
  ‚èA/tmp/dummy ƒtƒ@ƒCƒ‹‚̍s‚Ì’†‚©‚ç "test" ‚Æ‚¢‚¤•¶Žš—ñ‚ð’T‚µo‚µ‚½‚Æ
  ‚«‚ɍs‚Á‚½ˆ—(action)‚ª‰æ–Ê‚Ö‚Ì•\Ž¦ "print" ‚Å‚·B

               $ awk '/test/ {i=i+1} END {print i}' /tmp/dummy
               3

  ”‘½‚­‚̃pƒ^[ƒ“‚ð’T‚»‚¤‚Æ‚µ‚Ä‚¢‚é‚Æ‚«‚́AƒNƒIƒe[ƒVƒ‡ƒ“('')‚ň͂܂ꂽ
  •¶Žš—ñ‚ð(—Ⴆ‚Î) '-f file.awk' ‚Æ‚¢‚Á‚½ƒtƒ@ƒCƒ‹–¼‚Å’u‚«Š·‚¦‚Ü‚·B‚»‚¤
  ‚·‚ê‚΁A‚·‚ׂẴpƒ^[ƒ“‚Əˆ—‚ð 'file.awk' ‚Æ‚¢‚¤ƒtƒ@ƒCƒ‹‚ɏ‘‚«ž‚ñ
  ‚ŁA‚Ü‚Æ‚ß‚ÄŽÀs‚Å‚«‚Ü‚·B

  11.5.3.  grep (ŒŸõƒpƒ^[ƒ“‚ɍ‡’v‚·‚és‚̏o—Í)

  grep ƒRƒ}ƒ“ƒh‚́A‚ ‚éƒpƒ^[ƒ“‚ɍ‡’v‚·‚és‚ð•\Ž¦‚·‚é‹@”\‚ɂ‚¢‚ẮA‚±
  ‚ê‚܂ł̏͂ł¢‚­‚Â‚àŒ©‚Ä‚«‚½‚ÆŽv‚¢‚Ü‚·B‚µ‚©‚µAgrep ‚Ì‹@”\‚Í‚»‚ꂾ‚¯
  ‚Å‚Í‚ ‚è‚Ü‚¹‚ñB

               $ grep "look for this" /var/log/messages -c
               12

  ã‹L‚Ì—á‚́A"look for this" ‚Æ‚¢‚¤•¶Žš—ñ‚ª /var/log/messages ƒtƒ@ƒCƒ‹
  ‚Ì‚È‚©‚Å 12 ‰ñŒ©‚‚©‚Á‚½‚±‚Æ‚ðˆÓ–¡‚µ‚Ä‚¢‚Ü‚·B

  [ OK, ‚±‚Ì—á‘è‚̓tƒFƒCƒN‚È‚ñ‚¾B/var/log/messages ‚É‚¿‚å‚Á‚ÆŽè‚ð‰Á‚¦‚Æ
  ‚¢‚½‚Ì‚³B :-)]

  11.5.4.  wc (sAŒêAƒoƒCƒg”‚𐔂¦‚Ü‚·)

  ˆÈ‰º‚Ì—á‘è‚ł́Ao—Í‚ªŠú‘Ò’Ê‚è‚É‚È‚Á‚Ä‚¢‚È‚¢‚Ì‚ª•ª‚©‚é‚ÆŽv‚¢‚Ü‚·B‚±‚Ì
  —á‘è‚ÅŽg‚í‚ꂽƒ_ƒ~[ƒtƒ@ƒCƒ‹‚É‚Í(‘O‚ÉŽg‚Á‚½“à—e‚Ƃ͈قȂé)ŽŸ‚̂悤‚È•¶
  Žš—ñ‚ªŠÜ‚Ü‚ê‚Ä‚¢‚½‚©‚ç‚Å‚ç‚·B

          bash introduction
          howto test file

               $ wc --words --lines --bytes /tmp/dummy
               2 5 34 /tmp/dummy

  wc ‚ł̓pƒ‰ƒ[ƒ^Žw’è‚̏‡”Ô‚ÍŽ©—R‚Å‚·‚ªA‚»‚ê‚ç‚̏o—ÍŽž‚̏‡”Ô‚Í‚¢‚‚à
  Œˆ‚Ü‚Á‚Ä‚¢‚Ü‚·Bã‹L‚̂悤‚ɁAs”AŒê”AƒoƒCƒg”Aƒtƒ@ƒCƒ‹–¼ ‚̏‡”Ô
  ‚É‚È‚è‚Ü‚·B

  11.5.5.  sort (ƒeƒLƒXƒgƒtƒ@ƒCƒ‹“à‚̍s‚Ì•À‚בւ¦)

  ¡‰ñ‚̃_ƒ~[ƒtƒ@ƒCƒ‹‚Ì“à—e‚ÍŽŸ‚̂悤‚É‚È‚Á‚Ä‚¢‚Ü‚·B

          b
          c
          a

               $ sort /tmp/dummy

  ŽŸ‚́A‚»‚̃AƒEƒgƒvƒbƒg‚ª‚Ç‚¤•\Ž¦‚³‚ê‚é‚©‚Å‚·B

               a
               b
               c

  ƒRƒ}ƒ“ƒh‚ðŽg‚¤‚Æ‚·‚é‚ƁA‚±‚ê‚Ù‚ÇŠÈ’P‚É‚Í‚¢‚©‚È‚¢‚Å‚µ‚傤B

  11.5.6.  bc (”’lŒvŽZ—p‚̃vƒƒOƒ‰ƒ~ƒ“ƒOŒ¾Œê)

  bc ‚̓Rƒ}ƒ“ƒhƒ‰ƒCƒ“‚Å‘€ì‚·‚é‚æ‚­‚Å‚«‚½ŒvŽZƒvƒƒOƒ‰ƒ€‚Å‚·BƒŠƒ_ƒCƒŒƒN
  ƒg‚âƒpƒCƒv‚©‚ç‚Í“ü—Í‚Å‚«‚Ü‚¹‚ñ‚ªAƒtƒ@ƒCƒ‹‚©‚ç‚Ì“ü—Í‚ª‰Â”\‚ŁAƒ†[ƒUƒC
  ƒ“ƒ^[ƒtƒFƒCƒX‚à‚ ‚è‚Ü‚·BˆÈ‰º‚ł́A‚»‚̃Rƒ}ƒ“ƒh‚Ì’†‚©‚ç‚¢‚­‚‚©‚ðŽÀÛ
  ‚Ƀfƒ‚ƒ“ƒXƒgƒŒ[ƒVƒ‡ƒ“‚µ‚Ä‚Ý‚Ü‚·B‚È‚¨Abc ‹N“®Žž‚É -q ƒpƒ‰ƒ[ƒ^‚ðŽg
  —p‚µ‚Ä‚¢‚é‚̂́A‹N“®Žž‚ɃEƒFƒ‹ƒJƒ€ƒƒbƒZ[ƒW‚ðo—Í‚³‚¹‚È‚¢‚½‚ß‚Å‚·B

               $ bc -q
               1 == 5
               0
               5 != 5
               0
               2 ^ 8
               256
               sqrt(9)
               3
               while (i != 9) { i = i + 1; print i }
               12345689
               quit

  11.5.7.  tput (’[––‚̏‰Šú‰»‚â terminfo ƒf[ƒ^ƒx[ƒX‚ÌŒŸõ)

  tput ‚Å‚È‚É‚ª‚Å‚«‚é‚©AŠÈ’P‚ɏЉ‚Ü‚·B

               $ tput cup 10 4

  ã‹L‚Ì—á‚ł́Aƒvƒƒ“ƒvƒg‚ª (y10,x4) ‚̈ʒu‚É‚ ‚ç‚í‚ê‚Ü‚·B

               $ tput reset

  ã‹L‚ł́A‰æ–Ê‚ð‚à‚Æ‚É–ß‚µ‚āA(y1,x1) ‚̈ʒu‚Ƀvƒƒ“ƒvƒg‚ð•\Ž¦‚µ‚Ü
  ‚·B(y0,x0) ‚ª‚¿‚傤‚Ǎ¶ã‚Ì‹÷‚É‚ ‚½‚éˆÊ’u‚Å‚·B

               $ tput cols
               80

  ã‹L‚ł́AX Ž²•ûŒü‚É•¶Žš‚ª‚¢‚­‚•À‚Ô‚Ì‚©‚ð•\Ž¦‚µ‚Ä‚¢‚Ü‚·B

  (­‚È‚­‚Æ‚à)ã‹L‚̂悤‚ȃvƒƒOƒ‰ƒ€‚ɂ‚¢‚ẮAŽg‚¢Šµ‚ê‚Ä‚¨‚­‚±‚Æ‚ð‹­‚­
  ‚¨‘E‚ß‚µ‚Ü‚·BƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ã‚Ì‘€ì‚Å‹Á‚­‚قǂ̏ˆ—‚ð‚µ‚Ä‚­‚ê‚鏬‚³‚È
  ƒvƒƒOƒ‰ƒ€‚Í–³”‚É‚ ‚è‚Ü‚·B

  [—á‘è‚Ì‚¢‚­‚‚©‚́Aƒ}ƒjƒ…ƒAƒ‹ƒy[ƒW‚â FAQ ‚©‚çŽæ‚è‚Ü‚µ‚½B]

  12.  ‚¢‚ë‚¢‚ë‚ȃXƒNƒŠƒvƒg

  12.1.  ƒfƒBƒŒƒNƒgƒŠã‚Ì‘Sƒtƒ@ƒCƒ‹‚ɃRƒ}ƒ“ƒh‚ð“K—p‚·‚é•û–@

  (ì¬’†)

  12.2.  ƒTƒ“ƒvƒ‹: ”ñí‚ɃVƒ“ƒvƒ‹‚ȃoƒbƒNƒAƒbƒvƒXƒNƒŠƒvƒg(‰ü—Ç”Å)

               #!/bin/bash
               SRCD="/home/"
               TGTD="/var/backups/"
               OF=home-$(date +%Y%m%d).tgz
               tar -cZf $TGTD$OF $SRCD

  12.3.  ƒtƒ@ƒCƒ‹–¼•ÏXƒXƒNƒŠƒvƒg

               #!/bin/sh
               # renna: ‚¢‚­‚‚©‚̃‹[ƒ‹‚ɏ]‚Á‚āA•¡”‚̃tƒ@ƒCƒ‹‚ðƒŠƒl[ƒ€‚·‚é
               # ƒXƒNƒŠƒvƒg: Felix Hudson Jan 2000

               # Å‰‚É‚±‚̃vƒƒOƒ‰ƒ€‚ªŽæ‚é‚¢‚­‚‚©‚́uƒ‚[ƒhv‚ɂ‚¢‚ă`ƒFƒbƒN‚·‚é
               # ‘æˆêˆø”($1)‚ÌðŒ‚ªˆê’v‚·‚é‚È‚çAƒvƒƒOƒ‰ƒ€‚ÌŠY“–•”•ª‚ðŽÀs‚µ‚Ä
               # I—¹‚·‚é

               # prefix ‚ÌðŒ‚ðƒ`ƒFƒbƒN‚·‚é
               if [ $1 = p ] ; then

               # ƒ‚[ƒh•Ï”($1)‚Æ prefix ($2)‚ðŽæ‚菜‚­
               prefix=$2 ; shift ; shift

               # ƒtƒ@ƒCƒ‹‚ªŽw’肳‚ê‚Ä‚¢‚é‚©ŠÈ’P‚Ƀ`ƒFƒbƒN‚·‚é
               # Žw’肳‚ê‚Ä‚¢‚È‚¢‚Æ‚«‚́A‘¶Ý‚µ‚È‚¢ƒtƒ@ƒCƒ‹‚ðƒŠƒl[ƒ€‚·‚邱‚Æ‚Í
               # ‚Å‚«‚È‚¢‚̂ŁA‚È‚É‚à‚µ‚È‚¢
               if [$1 = ]; then
                    echo "no files given"
                    exit 0
               fi

               # ƒvƒƒOƒ‰ƒ€‚̈ø”‚Æ‚È‚éƒtƒ@ƒCƒ‹‚ð‡‚Éƒ‹[ƒvˆ—‚·‚é
               # ƒtƒ@ƒCƒ‹‚ð‚ЂƂ‚¸‚ƒŠƒl[ƒ€‚·‚é
               for file in $*
                   do
                   mv ${file} $prefix$file
               done

               # ‚±‚±‚ŃvƒƒOƒ‰ƒ€‚ðI—¹‚·‚é
                   exit 0
               fi

          # suffix ‚ðƒŠƒl[ƒ€‚·‚é‚©ƒ`ƒFƒbƒN‚·‚é
          # ‚±‚±‚Å‚ÌŽc‚è‚Ì•”•ª‚͏ã‹L‚Æ‚¨‚È‚¶ˆ—‚Ȃ̂ŁA‚»‚¿‚ç‚ðŒ©‚Ä‚Ù‚µ‚¢
          if [ $1 = s ]; then
              suffix=$2 ; shift ; shift

          if [$1 = ]; then
              echo "no files given"
              exit 0
          fi

          for file in $*
              do
               mv ${file} $file$suffix
              done
              exit 0
          fi

               # –¼‘O‚Ì’u‚«Š·‚¦‚©‚Ç‚¤‚©‚ðƒ`ƒFƒbƒN‚·‚é
               if [ $1 = r ]; then
                   shift

               # ƒ†[ƒU‚ªˆ—‚Ì“à—e‚ðŽw’肵‚È‚©‚Á‚½‚Æ‚µ‚Ä‚àƒtƒ@ƒCƒ‹‚ªƒ_ƒ[ƒW‚ð
               # Žó‚¯‚È‚¢‚悤‚ɁAŽŸ‚̃R[ƒh‚ðŠÜ‚ß‚½
               if [ $# -lt 3 ] ; then
                   echo "usage: renna r [expression] [replacement] files... "
                   exit 0
               fi

               # —]Œv‚ȏî•ñ‚ðíœ‚·‚é
               OLD=$1 ; NEW=$2 ; shift ; shift

          # ‚±‚Ì for ƒ‹[ƒv‚̓vƒƒOƒ‰ƒ€‚É—^‚¦‚ç‚ꂽƒtƒ@ƒCƒ‹‚ð‡‚Éˆ—‚·‚é
          # sed ‚Æ‚¢‚¤ƒvƒƒOƒ‰ƒ€‚ðŽg‚Á‚āAƒtƒ@ƒCƒ‹‚ð‚ЂƂ‚¸‚ƒŠƒl[ƒ€‚·‚é
          # sed ‚Í•W€“ü—Í‚ð“ǂݍž‚ñ‚ŁA“Á’è‚Ì•\Œ»‚ð—^‚¦‚ç‚ꂽ•¶Žš—ñ‚É’uŠ·‚·‚é
          # ‚±‚±‚ł́A•W€“ü—Í‚©‚çƒtƒ@ƒCƒ‹–¼‚ðŽw’肵‚āA•K—v‚È•¶Žš‚ð’uŠ·‚³‚¹‚é
          for file in $*
              do
               new=`echo ${file} | sed s/${OLD}/${NEW}/g`
               mv ${file} $new
              done
              exit 0
          fi

               # ‚±‚±‚Ü‚Å—ˆ‚½‚Æ‚·‚é‚ƁAƒvƒƒOƒ‰ƒ€‚Ɉø”‚ª‚È‚©‚Á‚½‚Æ‚¢‚¤‚±‚ƂȂ̂ŁA
               # Žg‚¢•û‚ð•\Ž¦‚·‚é
               echo "usage;"
               echo " renna p [prefix] files.."
               echo " renna s [suffix] files.."
               echo " renna r [expression] [replacement] files.."
               exit 0

               # I—¹

  12.4.  ƒtƒ@ƒCƒ‹–¼•ÏXƒXƒNƒŠƒvƒg(ŠÈˆÕ”Å)

               #!/bin/bash
               # renames.sh
               # basic file renamer

               criteria=$1
               re_match=$2
               replace=$3

               for i in $( ls *$criteria* );
               do
                   src=$i
                   tgt=$(echo $i | sed -e "s/$re_match/$replace/")
                   mv $src $tgt
               done

  13.  ‚¤‚Ü‚­‚¢‚©‚È‚¢Žž(ƒfƒoƒbƒO)

  13.1.  bash ‚̌Ăяo‚µ•û

  Œø‰Ê“I‚Ȃ̂́A‘æˆês–Ú‚É‚¿‚å‚Á‚ÆŽè‚ð‰Á‚¦‚邱‚Æ‚Å‚·B

               #!/bin/bash -x

  ‚±‚¤‚·‚é‚ƁAo—͂ɍۂɖʔ’‚¢î•ñ‚ª•\Ž¦‚³‚ê‚Ü‚·B

  14.  ‚±‚Ì•¶‘‚ɂ‚¢‚Ä

  ’ñˆÄ‚â’ù³A‚Ü‚½‚±‚Ì•¶‘‚ÉŒfÚ‚·‚ׂ«–Ê”’‚¢Ž–•¿‚È‚Ç‚È‚ñ‚Å‚à‚¨‹CŒy‚ɘA—
  ‚µ‚Ä‚­‚¾‚³‚¢B‚Å‚«‚邾‚¯‘‚­”½‰f‚³‚¹‚Ü‚·B

  14.1.  (–³)•ÛØ‚ɂ‚¢‚Ä

  This documents comes with no warranty of any kind. and all that (ƒ}ƒ})

  ‚±‚Ì•¶‘‚ɂ́A‚¢‚©‚È‚é•ÛØ‚à”º‚¢‚Ü‚¹‚ñB

  14.2.  –|–ó‚ɂ‚¢‚Ä

  ƒCƒ^ƒŠƒAŒê: by Willy Ghelfi (wizzy at tiscalinet.it) ‚±‚¿‚ç

  ƒtƒ‰ƒ“ƒXŒê: by Laurent Martelli ( URL ‚Í•s–¾)

  ŠØ‘Œê: Minseok Park http://kldp.org

  ŠØ‘Œê: Chun Hye Jin ( URL ‚Í•s–¾)

  ƒXƒyƒCƒ“Œê: –óŽÒ•s–¾ http://www.insflug.org

  ‚à‚Á‚Æ‘½‚­‚Ì–|–󂪂 ‚é‚ÆŽv‚¤‚Ì‚Å‚·‚ªAî•ñ‚ª‚ ‚è‚Ü‚¹‚ñBŒä‘¶’m‚Ì‚©‚½
  ‚́A‚킽‚µ‚Ƀ[ƒ‹‚ð‚­‚¾‚³‚¢B‚±‚̏͂ðXV‚µ‚Ü‚·B

  14.3.  ŽÓŽ«

  o  ‚±‚Ì•¶‘‚ð–|–󂵂Ă­‚ꂽ‚ЂƂ½‚¿(‘OÍ)

  o  Nathan Hurst ‚͏ڍׂɍZ³‚µ‚Ä‚­‚ê‚Ü‚µ‚½B

  o  Jon Abbott ‚͐”Ž®‚Ì•]‰¿‚ɂ‚¢‚ăRƒƒ“ƒg‚ð‘—‚Á‚Ä‚­‚ê‚Ü‚µ‚½B

  o  Felix Hudson ‚Í renna ƒXƒNƒŠƒvƒg‚ð‘‚¢‚Ä‚­‚ê‚Ü‚µ‚½B

  o  Kees van den Broek (Z³‚É‹¦—Í‚µA•Ö—˜‚ȃRƒ}ƒ“ƒh‚ÌÍ‚ðƒŠƒ‰ƒCƒg‚µ‚Ä
     ‚­‚ê‚Ü‚µ‚½)

  o  Mike (pink) ‚Í bash ‚̈ʒu‚ð“Á’肵‚½‚èƒtƒ@ƒCƒ‹‚ðƒeƒXƒg‚µ‚½‚è‚·‚邱
     ‚Ƃɂ‚¢‚Ä‚¢‚­‚‚©’ñˆÄ‚µ‚Ä‚­‚ê‚Ü‚µ‚½B

  o  Fiesh ‚̓‹[ƒv‚̏͂ɂ‚¢‚Ä‚¢‚¢’ñˆÄ‚ð‚µ‚Ä‚­‚ê‚Ü‚µ‚½B

  o  Lion ‚̓Rƒ}ƒ“ƒhƒGƒ‰[‚ɂ‚¢‚ďq‚ׂé‚悤’ñˆÄ‚µ‚Ä‚­‚ê‚Ü‚µ
     ‚½B(./hello.sh: Command not found.)

  o  Andrea Beck ‚͍Z³‚ƃRƒƒ“ƒg‚ɂ‚¢‚Ä‹¦—Í‚µ‚Ä‚­‚ê‚Ü‚µ‚½B

  14.4.  ‰ü’ù—š—ð

  o  –|–󂪐V‹K‚ɒljÁ‚³‚êA‚¢‚­‚‚©’ù³‚ð‰Á‚¦‚½B

  o  Kees ‚̃Šƒ‰ƒCƒg‚É‚æ‚é•Ö—˜‚ȃRƒ}ƒ“ƒh‚̏͂ð•t‚¯‰Á‚¦‚½B

  o  ’ù³‚ð’ñˆÄ‚ð‘啝‚ÉŽæ‚è“ü‚ꂽB

  o  •¶Žš—ñ”äŠr‚ɂ‚¢‚ÄŽÀ—á‚𑝂₵‚½B

  o  v0.8 ƒo[ƒWƒ‡ƒ“î•ñ‚ðŠO‚µ‚½B“ú•t‚ŏ[•ª‚¾‚ÆŽv‚¤B

  o  v0.7 ’ù³‰ÓŠ‘½”BTO-DO ‚ÌÍ‚ð‘‚«’¼‚µB

  o  v0.6 ‚·‚±‚µ’ù³

  o  v0.5 ƒŠƒ_ƒCƒŒƒNƒg‚̏͂ð’ljÁ

  o  v0.4 ‘O”C‚̃{ƒX‚̈ӌü‚Å‚»‚ê‚܂ł̃y[ƒW‚ÅŒöŠJ‚Å‚«‚È‚­‚È‚Á‚½‚ªA‚±‚Ì
     •¶‘‚É‚Æ‚Á‚Ă͍œK‚̏ꏊ‚ªŒ©‚‚©‚Á‚½B <http://www.linuxdoc.org/>

  o  ‚»‚êˆÈ‘O‚Ì‚±‚Æ‚ÍŠo‚¦‚Ä‚¢‚È‚¢Brcs ‚à cvs ‚àŽg‚Á‚Ä‚¢‚È‚©‚Á‚½B

  14.5.  ŽQlƒz[ƒ€ƒy[ƒW

  ( BeOS ‚Å‚Ì)bash ‚ÉŠÖ‚·‚éÐ‰î
  <http://org.laol.net/lamug/beforever/bashtut.htm>

  Bourne Shell ‚̃vƒƒOƒ‰ƒ~ƒ“ƒO <http://207.213.123.70/book/>

  14.6.  “ú–{Œê–ó‚ɂ‚¢‚Ä

  –|–ó ç’U —TŽi  <ysenda@pop01.odn.ne.jp>
  Z³ ˆäã GŒå  <shyugoro@pop12.odn.ne.jp>
       •ˆä LŒõ  <takei@webmasters.gr.jp>
       ˆÉ“¡ —Sˆê  <kade@kadesoft.com>