¼ø¶È»ñÎÁ/07 ¤ÎÊѹ¹ÅÀ


aa
#CONTENTS

//  Âè 7 ²ó -- ¥·¥§¥ë¥¹¥¯¥ê¥×¥È

* What are shell scripts?: ¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤È¤Ï [#m39b1d76]

[[&ref(/materials/JNorth_arrow-right-sm.png); ¥¹¥¯¥ê¥×¥È¥Õ¥¡¥¤¥ë¤Î¥³¥Þ¥ó¥É²½>¼ø¶È»ñÎÁ/06#script-command]] ¤òÍøÍѤ·¤Æ¡¤¥·¥§¥ë¤ÎÁàºî¤ò°ì¤Ä¤Î¥³¥Þ¥ó¥É¤ËÊѤ¨¤ë¤â¤Î¤Ç¤¢¤ë¡¥
&br;
Unix ¤Ç²¿²ó¤â»÷¤¿¤è¤¦¤Êºî¶È¤ò¤¹¤ë¤È¤­¤Ê¤É¤Ë¤Ï¡¤Èó¾ï¤Ë°ÒÎϤòȯ´ø¤¹¤ë¡¥

&br;&br;
CENTER:&size(24){''·«¤êÊÖ¤¹Áàºî¤Ï¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤Ç''};
&br;
CENTER:&size(24){''¥³¥Þ¥ó¥É¤Ë¤·¤Æ¤É¤ó¤É¤ó¸úΨ¤è¤¯¡ª¡ª''};
&br;&br;

¥·¥§¥ë¤Îʸˡ¤Ë´Ø¤·¤Æ¤Ï¡¤sh ·Ï¥·¥§¥ë¤È csh ·Ï¥·¥§¥ë¤Ç·ë¹½°ã¤¦¡¥
&br;&br;

- csh ·Ï¤ÎÊý¤¬¿Í´Ö¤Ë¤È¤Ã¤Æľ´¶Åª.
- bsh ·Ï¤ÎÊý¤¬¤­¤Á¤ó¤È¤·¤Æ¤¤¤ë (&ref(/materials/warning.png); "Í­³²¤Ê csh ¥×¥í¥°¥é¥ß¥ó¥°" ¤È¤¤¤¦Ê¸¸À¤òweb¤Ç¸¡º÷¤·¤Æ¤ß¤è¤¦)

&br;&br;
º£²ó¤Ï bsh ·Ï¤Ç³Ø½¬¤·¤Æ¤ª¤¯.

** ÆâÍƤÎÏäò¤¹¤ëÁ°¤Ë¡Ä [#a04eca89]

¥·¥§¥¹¥¹¥¯¥ê¥×¥È¤Ë¤Ä¤¤¤Æ³Ø¤ó¤À¤ê¡¤¼«Ê¬¤Ç¥¹¥¯¥ê¥×¥È¤ò½ñ¤¤¤¿¤ê¤·¤Æ¤¤¤ë¤È¤¤¤í¤¤¤íµ¿Ì䤬À¸¤º¤ë¤È»×¤¦¡¥
¤½¤ÎºÝ¡¤¥¹¥¯¥ê¥×¥È¤òÆþ¤ì¤ë¤È²òÀâ¤ò¤·¤Æ¤¯¤ì¤ë~
[[&ref(/materials/JNorth_arrow-right-sm.png); www.shellcheck.net:http://www.shellcheck.net]]~
¤ÏÂçÊÑÌò¤ËΩ¤Ä¤À¤í¤¦¡¥
¤¼¤ÒÍ­¸ú³èÍѤ·¤Æ¤â¤é¤¤¤¿¤¤¡¥

&br;&br;
* Preparation and rough explanation: ½àÈ÷¤È°ìÏ¢¤Îή¤ì [#dd009522]

** Preparation: ½àÈ÷ [#m900cc8b]

+ ¥¹¥¯¥ê¥×¥È¥Õ¥¡¥¤¥ë¤òÃù¢¤·¤Æ¤ª¤¯¥Ç¥£¥ì¥¯¥È¥ê¤òÍÑ°Õ¡¥
bin ¤È¤¤¤¦Ì¾Á°¤òÍѤ¤¤ë¤³¤È¤¬Â¿¤¤¡¥
&br;
> ''cd␣~''
> ''mkdir␣bin''
<
&br;
+ ÍÑ°Õ¤·¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ë path ¤òÄ̤¹¡¥.profile ¤ÎÃæ¤ÇÀßÄꤹ¤ë¤Î¤¬Îɤ¤¤À¤í¤¦¡¥
¶ñÂÎŪ¤Ë¤Ï¡¤~/.profile ¤ÎÃæ¤Î¤½¤ì¤Ã¤Ý¤¤¤È¤³¤í¤Ë
// programu source ɽµ­
#highlighter(language=SH,number=on,cache=on){{
if [ -d $HOME/bin ]
  then
  PATH=$PATH:$HOME/bin; export PATH
fi
}}
¤Ê¤É¤È½ñ¤­¹þ¤ó¤Ç¤ª¤±¤Ð¡¤¼¡²ó¥í¥°¥¤¥ó»þ¤è¤ê¤³¤ì¤¬Í­¸ú¤Ë¤Ê¤ë¡¥
&br;
&ref(/materials/warning.png); ''['' ¤ä '']'' ¤ÎÁ°¸å¤ËÆþ¤Ã¤Æ¤¤¤ë¥¹¥Ú¡¼¥¹¤ò½üµî¤·¤Ê¤¤¤³¤È¡ª ¤³¤ì¤é¤Ï°ìʸ»ú¤À¤¬¡¤¥³¥Þ¥ó¥É¤Ê¤Î¤À¡¥
&br;
&ref(/materials/warning.png); ¤³¤ÎÊѹ¹¤òÍ­¸ú¤Ë¤¹¤ë¤¿¤á¤Ë¤¤¤Ã¤¿¤ó¥í¥°¥¢¥¦¥È¤·¤Æ¤«¤éºÆ¥í¥°¥¤¥ó¤·¤Æ¤â¤è¤¤¤¬¡¤
> ''source&#9251;~/.profile''
<
¤ÈÆþÎϤ¹¤ë¤È¤½¤Î¾ì¤Ç''.profile''¥Õ¥¡¥¤¥ë¤ÎÃæ¿È¤¬È¿±Ç¤µ¤ì¤ë¤Î¤Ç¤½¤ì¤Ç¤â¤è¤¤¡¥

&ref(/materials/notes.png); ¼Â½¬: ¾å¤Î½àÈ÷ 1, 2 ¤ò¤·¤Æ¤ª¤³¤¦¡¥
¤¿¤À¤·¡¤ºåÂç¤Î´Ä¶­¤Ç¤ÏºÆ¥í¥°¥¤¥ó¤·¤¿»þ¤Ë .profile ¤ÎÆâÍƤ¬È¿±Ç¤µ¤ì¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡¥
¤½¤Î¾ì¹ç¤Ï¡¤¥í¥°¥¤¥ó¤·¤¿¤é¾å¤Î''source''¤ò»È¤¦ÊýË¡¤Ç path ¤ò(Ëè²ó¡©)ºÆÀßÄꤷ¤è¤¦¡¥

** Rough explanation: ¥·¥§¥ë¥¹¥¯¥ê¥×¥ÈÍøÍѤΰìÏ¢¤Îή¤ì [#flow-of-shell-scripts]

¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤òºî¤Ã¤Æ¡¤¤½¤·¤Æ»È¤¦¤Ë¤Ï¤¤¤Ä¤â°Ê²¼¤ÎÆóÃʳ¬¤òƧ¤ó¤Ç¤ª¤±¤ÐÎɤ¤¡¥

+ ¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤òºî¤ê¡¤1 ¤ÇÍÑ°Õ¤·¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤¯.
&br;&br;
+ ¥¹¥¯¥ê¥×¥È¥Õ¥¡¥¤¥ë¤Ë¼Â¹Ôµö²Ä¤òÍ¿¤¨¤ë¡¥
&br;
Î㤨¤Ð¡¤¥¹¥¯¥ê¥×¥È¥Õ¥¡¥¤¥ë¤¬ dummy ¤È¤¤¤¦Ì¾Á°¤Ê¤é¤Ð
> ''chmod&#9251;u+x&#9251;~/bin/dummy''
<
¤È¤¹¤ì¤ÐÎɤ¤¡¥

&br;&br;
* Basic structure of shell scripts: ¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤Î´ðËܹ½Â¤(bash) [#ua82479e]

[[&ref(/materials/JNorth_arrow-right-sm.png); ¥¹¥¯¥ê¥×¥È¥Õ¥¡¥¤¥ë¤Î¥³¥Þ¥ó¥É²½>¼ø¶È»ñÎÁ/06#script-command]] ¤òÍѤ¤¤Æ¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤ÏºîÀ®¤µ¤ì¤ë¡¥  
¥¹¥¯¥ê¥×¥È¤ÎÀèƬ¹Ô¤Ë¤É¤¦½ñ¤¯¤«¤Ç¤¢¤ë¤¬¡¤linux ·Ï¤Ç¤¢¤ì¤Ð 
// ¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤Ï¥·¥§¥ëÀßÄê¥Õ¥¡¥¤¥ë¤òÆɤޤʤ¤¤è¤¦¤Ë¤·¤¿Êý¤¬°ÂÄꤷ¤ÆÆ°ºî¤¹¤ë¤³¤È¡¤
// ¤Ê¤ë¤Ù¤¯ÉáÊ×Ū¤Ê´Ä¶­¤ÇÆ°ºî¤¹¤ë¤³¤È¡¤ÈóÂÐÏôĶ­¤Ç¤¢¤ë¤³¤È¡¤
// ¤ò¹Íθ¤¹¤ë¤È¡¤·ëÏÀ¤«¤é¸À¤¨¤Ð
// &br;
// &br;
// ''#!/bin/bash --noprofile --posix''
// &br;
// &br;
// ¤È½ñ¤¯¤«¡¤

> ''#!/bin/sh''

¤È½ñ¤±¤ÐÎɤ¤¤À¤í¤¦¡¥

&br;
&br;
&ref(/materials/warning.png); ¥¹¥¯¥ê¥×¥È¤ÎÆâÍƤò¼Â¹Ô¤·¤Ê¤¤¤Ç¡¤Ê¸Ë¡¥Á¥§¥Ã¥¯¤À¤±¹Ô¤¤¤¿¤¤¾ì¹ç¤Ï¡¤

> ''#!/bin/sh&#9251;-n''

¤ÈÀèƬ¹Ô¤Ë½ñ¤±¤Ð¤è¤¤¡¥
¥Õ¥¡¥¤¥ë¤Îºï½ü¤Ê¤É¡¤¤ä¤ä´í¸±¤Êºî¶È¤ò¹Ô¤¦¥¹¥¯¥ê¥×¥È¤Ï¤³¤ì¤Ç¥Á¥§¥Ã¥¯¤¹¤ë¤ÈÎɤ¤¤À¤í¤¦¡¥

&br;&br;
&ref(/materials/warning.png); ¼Â¹Ô»þ¤Ë¥¹¥¯¥ê¥×¥È¤ÎÆâÍƤâɽ¼¨¤·¤¿¤¤¾ì¹ç¤Ï¡¤

> ''#!/bin/sh&#9251;-v''

¤ÈÀèƬ¹Ô¤Ë½ñ¤±¤Ð¤è¤¤¡¥
¥¹¥¯¥ê¥×¥È¤ÎÆ°ºî¤¬Ë¾¤ß¤Î¤â¤Î¤È°ã¤¦»þ¤Ï¤³¤ì¤Ç¥Á¥§¥Ã¥¯¤¹¤ë¤ÈÎɤ¤¡¥

&br;&br;
&ref(/materials/notes.png); ¼Â½¬

+ Hello ¤È¤¤¤¦¥Õ¥¡¥¤¥ë̾¤Ç¡¤¼¡¤Î¤è¤¦¤ÊÃæ¿È¤Î¥¹¥¯¥ê¥×¥È¤òºî¤ë.
#highlighter(language=SH,number=on,cache=on){{
#!/bin/sh
echo "Hello, world!"
}}
&br;
+ ¾å¤Î[[&ref(/materials/JNorth_arrow-right-sm.png); °ìÏ¢¤Îή¤ì>#flow-of-shell-scripts]]¤Î 1,2 ÁêÅö¤ò¹Ô¤ª¤¦¡¥
&br;&br;
+ ¤É¤Î¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤Ç¤â¤è¤¤¤Î¤Ç¡¤
//
>''Hello''
<
¤ÈÂǤÁ¹þ¤ó¤Ç¡¤ºîÀ®¤·¤¿¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤¬Æ°ºî¤¹¤ë¤³¤È¤ò³Îǧ¤·¤è¤¦¡¥

&br;&br;
* Continuous execution of commands: ¥³¥Þ¥ó¥É¤ÎϢ³¼Â¹Ô [#pc01df3a]

¥³¥Þ¥ó¥É¤ÎϢ³¼Â¹ÔÅù¤Ë¤Ä¤¤¤Æ
[[&ref(/materials/JNorth_arrow-right-sm.png); Ϣ³¼Â¹Ô>¼ø¶È»ñÎÁ/01#execution-multiple-commands]]
¤ÎÉôʬ¤Ç³Ø½¬¤·¤¿¤¬¡¤¤³¤³¤Ç¾ðÊó¤òÄɲ䷤Ƥª¤¯¡¥

: ''¥³¥Þ¥ó¥É1&#9251;;&#9251;¥³¥Þ¥ó¥É2'' |
¥³¥Þ¥ó¥É1 ¤ò¼Â¹Ô¸å¡¤¥³¥Þ¥ó¥É2 ¤ò¼Â¹Ô¤¹¤ë¡¥
: ''( ¥³¥Þ¥ó¥É1&#9251;;&#9251;¥³¥Þ¥ó¥É2 )'' |
¥³¥Þ¥ó¥É1 ¤ò¼Â¹Ô¸å¡¤¥³¥Þ¥ó¥É2 ¤ò¼Â¹Ô¤¹¤ë¡Ä ¤Î¤À¤¬¡¤
¤³¤ì¤éÆó¤Ä¤Î¥³¥Þ¥ó¥É¤ò¡Ö¥µ¥Ö¥·¥§¥ë¡×¤Î¤â¤È¤Ç¼Â¹Ô¤¹¤ë(¥°¥ë¡¼¥×²½)¡¥
¥µ¥Ö¥·¥§¥ë¤Ç¹Ô¤Ã¤¿´Ä¶­Êѹ¹¤Ï¤â¤È¤Î¥·¥§¥ë¤Ë±Æ¶Á¤·¤Ê¤¤¡¥
¤è¤Ã¤Æ¡¤¾õÂÖ¤ò°ì»þŪ¤ËÊѹ¹¤·¤Æºî¶È¤¹¤ë¤È¤­¤ËÊØÍø¡¥
&br;&br;
&ref(/materials/Gnome-Preferences.png); ¥°¥ë¡¼¥×²½¤ÎÎã.&br;
Î㤨¤Ð¡¤
//
> '' (cd&#9251;/tmp;&#9251;ls&#9251;-a) ''
<
¤È¤¹¤ë¤È¡¤/tmp ¤Çºî¶È¤¬¹Ô¤ï¤ì¤ë¤¬¡¤½ª¤ï¤Ã¤¿¤¢¤È¤Ë¥Ç¥£¥ì¥¯¥È¥ê¤ÏÊѹ¹¤µ¤ì¤Æ¤¤¤Ê¤¤¡¥
&br;&br;
¤Þ¤¿¡¤¥°¥ë¡¼¥×²½¤·¤¿¥³¥Þ¥ó¥É¤Îɸ½à½ÐÎÏÅù¤Ï¡Ö¹ç¤ï¤µ¤Ã¤Æ¡×½Ð¤Æ¤¯¤ë¡¥
¤³¤ì¤¬ÊØÍø¤Ê¤³¤È¤â¿¤¤¡¥
&br;&br;
&ref(/materials/Gnome-Preferences.png); ¥°¥ë¡¼¥×²½¤ÎÎã2.&br;
Î㤨¤Ð¡¤
//
> '' (\ls&#9251;/tmp;&#9251;\ls&#9251;/var)&#9251;|&#9251;less ''
<
¤È¤¹¤ë¤È¡¤/tmp ¤È /var ¤Î2¤Ä¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤Î¥ê¥¹¥È¤ò°ìÅ٤˱ÜÍ÷¤Ç¤­¤ë¡¥
: ''¥³¥Þ¥ó¥É1&#9251;&amp;&amp;&#9251;¥³¥Þ¥ó¥É2'' |
AND ¼Â¹Ô¡¥
¥³¥Þ¥ó¥É1 ¤ò¼Â¹Ô¤·¤Æ¤ß¤Æ¡¤¥³¥Þ¥ó¥É1 ¤¬À®¸ù¤·¤¿¤Ê¤é¤Ð(¥¨¥é¡¼¤Ë¤Ê¤é¤Ê¤¤»þ)¡¤
¥³¥Þ¥ó¥É2 ¤ò¼Â¹Ô¤¹¤ë¡¥
: ''¥³¥Þ¥ó¥É1&#9251;&brvbar;&brvbar;&#9251;¥³¥Þ¥ó¥É2'' |
OR ¼Â¹Ô¡¥
¥³¥Þ¥ó¥É1 ¤ò¼Â¹Ô¤·¤Æ¤ß¤Æ¡¤¥³¥Þ¥ó¥É1 ¤¬¼ºÇÔ¤·¤¿¤Ê¤é¤Ð(¥¨¥é¡¼¤Ë¤Ê¤Ã¤¿»þ)¡¤
¥³¥Þ¥ó¥É2 ¤ò¼Â¹Ô¤¹¤ë¡¥

&br;&br;
* Grammer of shell scripts: ¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤Îʸˡ [#f7d13b6f]

** Comment out: ¥³¥á¥ó¥È¥¢¥¦¥È [#w235a0bc]

¥·¥§¥ë¥¹¥¯¥ê¥×¥ÈÃæ¤Ç ''#'' ¤È¤¤¤¦Ê¸»ú¤¬¤¢¤ë¤È¡¤
¤½¤³¤«¤é¹ÔËö¤Þ¤Ç¤¬¥³¥á¥ó¥È¤È¤·¤Æ¼è¤ê°·¤ï¤ì¤ë(¤¿¤À¤·¡¤Ê¸»úÎóÃæ¤Ï½ü¤¯)¡¥

** Variables: ÊÑ¿ô [#f07be60d]

[[&ref(/materials/JNorth_arrow-right-sm.png); ¥·¥§¥ëÊÑ¿ô>¼ø¶È»ñÎÁ/04#shell-variables]]
¤Ç³Ø¤ó¤À¤È¤ª¤ê¤Ë¡¤¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤ÇÊÑ¿ô¤¬»È¤¨¤ë¡¥

&ref(/materials/warning.png); ÊÑ¿ôÀßÄê¤Î¤È¤­¡¤ÊÑ¿ô̾¤È¡Ö=¡×¤Î´Ö¤Ë¥¹¥Ú¡¼¥¹¤òÆþ¤ì¤ë¤Ê¡ª

&br;
&ref(/materials/warning.png); ¼Â¤Ï¡¤ÊÑ¿ô»²¾È¤ÎºÝ¤Ë
//
> ''${ÊÑ¿ô̾}''
<
¤È¤·¤¿Êý¤¬¡¤¤è¤ê°ÂÁ´¤À¡¥

&br;&br;
** String: ʸ»úÎó [#m75bd9dc]

ʸ»úÎó¤Ï quotation ¤Çɽ¤¹¡¥
&br;
¤³¤Î»þ¡¤
¡Ö&apos;¡×(¥·¥ó¥°¥ë¥¯¥©¡¼¥È)
¤Ç°Ï¤à¤Î¤È¡¤
¡Ö&quot;¡×(¥À¥Ö¥ë¥¯¥©¡¼¥È)
¤Ç°Ï¤à¤Î¤Ç¤ÏÀ­¼Á¤¬°Û¤Ê¤ë¤Î¤ÇÃí°Õ¤¬É¬ÍפÀ¡¥  

: ¡Ö&apos;¡×(¥·¥ó¥°¥ë¥¯¥©¡¼¥È) ¤Ç°Ï¤ó¤Àʸ»úÎó |
²¿¤¬½ñ¤«¤ì¤Æ¤¤¤Æ¤âñ¤Ê¤ëʸ»úÎó¤È¤·¤Æ°·¤¦¡¥
&br;&br;
: ¡Ö&quot;¡×(¥À¥Ö¥ë¥¯¥©¡¼¥È) ¤Ç°Ï¤ó¤Àʸ»úÎó |
$ ` \ ¤Î3¤Ä¤ÎÆüìʸ»ú¤ò¤³¤ì¤Þ¤Ç³Ø¤ó¤ÀÆüì¤Ê°ÕÌ£¤Ç°·¤¦.
¤Ä¤Þ¤ê¡¤&quot;(¥À¥Ö¥ë¥¯¥©¡¼¥È)¤Ç°Ï¤Þ¤ì¤¿Ê¸»úÎó¤ÎÃæ¤ÇÊÑ¿ô¤Î»²¾È¤Ï¹Ô¤ï¤ì¤ë.
&quot;(¥À¥Ö¥ë¥¯¥©¡¼¥È) ¤Î°Ï¤ßÆâÉô¤Ç¾å¤Î3¤Ä¤ÎÆüìʸ»ú¤òñ¤Ê¤ëʸ»ú¤È¤·¤Æ°·¤¤¤¿¤±¤ì¤Ð¡¤
\ ¤òÁ°¤Ë¤Ä¤±¤Æ
\$ \` \\ ¤È¤¹¤ë¡¥

&br;&br;
&ref(/materials/notes.png); ¼Â½¬

Àè¤Î Hello ¥¹¥¯¥ê¥×¥È¤ò¼¡¤Î¤è¤¦¤Ë²þ¤¤·¤è¤¦.

#highlighter(language=SH,number=on,cache=on){{
#!/bin/sh
# Greeting Script
g='Hello, world!'
d="today is `date +%m/%d`"
echo $g, $d.
}}

¤½¤·¤Æ¡¤²¿¤¬¤É¤¦¤Ê¤Ã¤Æ¤¤¤ë¤Î¤«Íý²ò¤·¤è¤¦¡¥

&br;&br;
** Arguments: °ú¿ô [#jdf1378f]

°ú¿ô¤È¤Ï¡¤¥×¥í¥°¥é¥à¤òµ¯Æ°¤¹¤ë¤È¤­¤Ë¡¤°ì½ï¤ËÍ¿¤¨¤ë¾ðÊó¤Ç¤¢¤ë¡¥
Î㤨¤Ð
''ls&#9251;-a&#9251;/tmp''
¤È¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤¿¤é¡¤(¹­¤¤°ÕÌ£¤Ç)°ú¿ô¤Ï ''-a, /tmp'' ¤ÎÆó¤Ä¤Ç¤¢¤ë¡¥
&br;
¤³¤Î°ú¿ô¤Ï°Ê²¼¤Î¤è¤¦¤Ë°·¤ï¤ì¤ë¡¥

CENTER:¢£ sh ·Ï¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤Ç¤Î°ú¿ô¤Î°·¤¤ ¢£

| ÊÑ¿ô | °ÕÌ£ |h
| ''$#'' | °ú¿ô¤Î¸Ä¿ô |
| ''$n'' | n ÈÖÌܤΰú¿ô¡¥&br; ¤¿¤À¤·¡¤0ÈÖÌܤΰú¿ô ''$0'' ¤ÏÆÃÊ̤ǡ¤¥·¥§¥ë¥¹¥¯¥ê¥×¥È¼«¿È¤Î̾Á°¤Ë¤Ê¤ë¡¥&br;&br; ¤Þ¤¿¡¤n > 9 ¤Ç¤¢¤ë¾ì¹ç¤Ï ''${12}'' ¤Ê¤É¤È¡¤Ã楫¥Ã¥³¤Ç°Ï¤Þ¤Ê¤¤¤È»È¤¨¤Ê¤¤¡¥ |
| ''$*'' | °ú¿ôÁ´¤Æ¡¥|
| (»²¹Í) ''$argv{m-n}'' | m ÈÖÌܤ«¤é n ÈÖÌܤޤǤΰú¿ô¤Î»ØÄê. ¤¿¤À¤· sh·Ï¤Ç¤ÏÍ­¸ú¤Ç¤Ï¤Ê¤¤¤è¤¦¤À¡¥ bash ¤Ê¤É¤Ç¤Ï¡¤°ú¿ô¤ÎÊ£»¨¤Ê½èÍý¤Ï ''getopts'' ¤Ç¹Ô¤¦¤Î¤¬Îɤ¤¤À¤í¤¦¡¥ |


*** Argument ¤ÎÁàºî: shift ¥³¥Þ¥ó¥É [#p2aa04c3]

''shift'' ¤È¤¤¤¦¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤È¡¤
°ì¤ÄÌܤΥª¥×¥·¥ç¥ó¤ÎÆâÍƤ¬¾Ãµî¤µ¤ì¡¤Æó¤ÄÌܰʹߤ¬Á°¤Ë¤º¤ì¤ë¡¥
¸À¤¤´¹¤¨¤ë¤È¡¤
$1 ¤Ë $2 ¤ÎÆâÍƤ¬Æþ¤ê¡¤
$2 ¤Ë $3 ¤ÎÆâÍƤ¬Æþ¤ê¡Ä ¤È
¤¤¤Ã¤¿Æ°ºî¤Ë¤Ê¤ë¡¥
¤Þ¤¿¡¤¤³¤Î·ë²Ì¤È¤·¤Æ¥ª¥×¥·¥ç¥ó¤Î¿ô $# ¤Ï 1 ¸º¤ë¡¥

&br;&br;
&ref(/materials/notes.png); ¼Â½¬

Welcome ¤È¤¤¤¦¥Õ¥¡¥¤¥ë̾¤Ç¥¹¥¯¥ê¥×¥È¤ò¼¡¤Î¤è¤¦¤Ëºî¤ë.

#highlighter(language=SH,number=on,cache=on){{
#!/bin/sh
# Welcome Script
name=`whoami`
g="($1 says) Thank you, $name"
echo $g.
}}

¤½¤·¤Æ¡¤¤³¤Î¥¹¥¯¥ê¥×¥È¤ò¼¡¤Î¤è¤¦¤Ë¼Â¹Ô¤·¤Æ¤ß¤è¤¦.

> ''Welcome&#9251;Smith''

¼Â¹Ô¤·¤Æ¤ß¤è¡¥
¤½¤·¤Æ¡¤¥¹¥¯¥ê¥×¥È¤ÎÆâÍƤòÆɤó¤ÇÍý²ò¤»¤è.

&br;&br;
** I/O: Æþ½ÐÎÏ [#a66dfec5]

¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤¬¼Â¹ÔÃæ¤ËÆþ½ÐÎϤò¹Ô¤¦¤Ë¤Ï¡¤¼ç¤Ë¼¡¤Î¥³¥Þ¥ó¥É¤òÍѤ¤¤ë¡¥

: ''read&#9251;ÊÑ¿ô'' |
ÆþÎÏ¡¥
&br;
¥æ¡¼¥¶¤«¤é¤Î(¥­¡¼¥Ü¡¼¥É)ÆþÎϤòÂÔ¤Á¡¤¤½¤Î·ë²Ì¤òÊÑ¿ô¤Ë¤¤¤ì¤ë¡¥
: ''echo&#9251;½ÐÎϤ·¤¿¤¤¤â¤Î'' |
½ÐÎÏ
: ''echo&#9251;-n&#9251;½ÐÎϤ·¤¿¤¤¤â¤Î'' |
½ÐÎÏ¡¥¤¿¤À¤·¡¤½ÐÎϸå¤Ë²þ¹Ô¤·¤Ê¤¤¡¥


&ref(/materials/Gnome-Preferences.png); ¼Â¹ÔÎã¡¥

#highlighter(language=SH,number=on,cache=on){{
#!/bin/sh 
echo -n 'Pls input something : '
read a
echo ' You input is ' $a
}}

¤ò¼Â¹Ô¤¹¤ë¤È¤É¤¦¤Ê¤ë¤À¤í¤¦¤«¡¥

&br;&br;
&ref(/materials/notes.png); ¼Â½¬

Hello ¥¹¥¯¥ê¥×¥È¤ò¤µ¤é¤Ë²þ¤¤·¤Æ¼¡¤Î¤è¤¦¤Ë¤·¤è¤¦.

#highlighter(language=SH,number=on,cache=on){{
#!/bin/sh
# Greeting Script
g='Hello'
i='Please tell me your name: '
o="Oh, nice to meet you"
echo $g.
echo -n $i
read ans
echo $o, $ans.
}}

¤½¤·¤Æ¡¤¤³¤Î¥¹¥¯¥ê¥×¥È¤ò¼Â¹Ô¤·¤Æ¤ß¤ë¤È¤È¤â¤Ë¡¤²¿¤¬¤É¤¦¤Ê¤Ã¤Æ¤¤¤ë¤Î¤«Íý²ò¤»¤è.

&br;&br;
** Calculations: ·×»» [#j6120c48]

¤½¤³¤½¤³¿·¤·¤¤ bash ¤Ï¤È¤â¤«¤¯¡¤
¥ª¥ê¥¸¥Ê¥ë¤Î sh ¤Ï·×»»µ¡Ç½¤ò¤Û¤È¤ó¤É»ý¤Ã¤Æ¤¤¤Ê¤¤¡¥
&br;
¤½¤³¤Ç¡¤¥·¥§¥ë¥¹¥¯¥ê¥×¥ÈÃæ¤Ç·×»»¤ò¹Ô¤¤¤¿¤¤¤È¤­¤Ï¸ß´¹À­¤ò´Õ¤ß¤Æ
[[&ref(/materials/JNorth_arrow-right-sm.png); ÊØÍø¡ªÀèÆɤßɾ²Á ``>¼ø¶È»ñÎÁ/04#look-ahead-evaluation]]
¤òÍøÍѤ·¤Æ³°Éô¥³¥Þ¥ó¥É¤ò¸Æ¤Ó½Ð¤¹¤Ê¤É¤ÎÊýË¡¤¬ºÎ¤é¤ì¤ë¤³¤È¤¬Â¿¤¤¡¥
&br;
¶ñÂÎŪ¤Ë¤Ï¡¤´Êñ¤ÊÀ°¿ô·×»»¤À¤±¤Ç¤è¤±¤ì¤Ð
''expr'' ¤ò¡¤
¤ä¤äÊ£»¨¤Ê¼Â¿ô·×»»¤ò¹Ô¤¤¤¿¤±¤ì¤Ð
''bc''
¤Ê¤É¤ò»È¤Ã¤Æ¼¡¤ÎÎã¤Î¤è¤¦¤Ë¤¹¤ë¡¥

&ref(/materials/Gnome-Preferences.png); expr ¤ò»È¤Ã¤¿Îã

#highlighter(language=SH,number=on,cache=on){{
#!/bin/sh  
a=5
b=`expr $a + 10` ; echo $b
c=`expr $b \* 2` ; echo $c 
}}

&ref(/materials/warning.png);
ºÇ¸å¤Î¹Ô¤Î ` ` ¤ÎÃæ¤Ç¡¤* ¤ÏŸ³«¤µ¤ì¤Æ¥Õ¥¡¥¤¥ë̾¤Ê¤É¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤«¤Í¤Ê¤¤¤Î¤Ç¡¤\* ¤È¤·¤Æ(¥¨¥¹¥±¡¼¥×)¡¤Ã±¤Ê¤ëʸ»ú¤È¤·¤Æ¤¤¤ë¡¥

&ref(/materials/notes.png); ¼Â½¬

¾å¤Î¥¹¥¯¥ê¥×¥È¤ò»î¤·¤Æ¤ß¤è.

&br;&br;
&ref(/materials/Gnome-Preferences.png); bc ¤ò»È¤Ã¤¿Îã

bc ¤Ï¡¤É¸½àÆþÎϤ«¤é·×»»¼°¤ò¤â¤é¤Ã¤Æ·ë²Ì¤òɸ½à½ÐÎϤ˽Ф»¤ë¤Î¤Ç¡¤Î㤨¤Ð ''echo'' ¤Ç¼°¤òÅϤ»¤ÐÎɤ¤¡¥

#highlighter(language=SH,number=on,cache=on){{
#!/bin/sh  
a=`echo "4*a(1.0)" | bc -l` ; echo $a
b=`echo "c($a)" | bc -l` ; echo $b
}}

¤Á¤Ê¤ß¤Ë¡¤2¹ÔÌÜ¤Ç ¦Ð¤ò¡¤3¹ÔÌÜ¤Ç cos(¦Ð) ¤ò·×»»¤·¤Æ¤¤¤ë¡¥

&ref(/materials/notes.png); ¼Â½¬

¾å¤Î¥¹¥¯¥ê¥×¥È¤ò»î¤·¤Æ¤ß¤è.

&br;&br;
** Functions of shell: ¥·¥§¥ë¤Î´Ø¿ô [#scdb3f30]

sh ·Ï¥·¥§¥ë¤Ç¤Ï¡¤¡ÖÊ£¿ô¤Î¥³¥Þ¥ó¥É¤ò¤Þ¤È¤á¤Æ̾Á°¤ò¤Ä¤±¤¿¤â¤Î¡×¤ò¼«Ê¬¤Çºî¤Ã¤Æ»È¤¨¤ë¡¥
¤³¤ì¤Ï¥×¥í¥°¥é¥ß¥ó¥°¤ÎÀ¤³¦¤Ç¤Ï ''´Ø¿ô'' ¤È¤è¤Ð¤ì¤ë¡¥
&br;

´Ø¿ô¤òºî¤ë¤Ë¤Ï¡¤

&br;&br;
''´Ø¿ô̾ () {''
&br;      
&nbsp;
&nbsp;
''¥³¥Þ¥ó¥É¡Ä''
&br;      
&nbsp;
&nbsp;
''}''
&br;&br;

¤È¤¤¤¦¹½Ê¸¤òÍøÍѤ¹¤ë¡¥
&br;
¤Á¤Ê¤ß¤Ë¡¤''{'' ¤«¤é ''}'' ¤Þ¤Ç¤Î´Ö¤Ç
´Ø¿ô¤ËÂФ¹¤ë n ÈÖÌܤΰú¿ô¤ò
''$n''
¤È¤·¤Æ»²¾È¤Ç¤­¤ë.
&br;
&br;
¤Þ¤¿¡¤¤³¤Î´Ø¿ôÆâÉô¤À¤±¤Ç»È¤¤¤¿¤¤ÊÑ¿ô¤¬¤¢¤ë¤È¤­¤Ï¡¤
''local''
¤òƬÉô¤Ë¤Ä¤±¤ÆÊÑ¿ôÀë¸À¤ò¤¹¤ì¤Ð¤è¤¤¡¥

&br;
&ref(/materials/warning.png); ÁǤΠsh ¤Î alias ¤ÏÊÑ¿ô¤ò¤¦¤Þ¤¯»È¤¨¤Ê¤¤¤Î¤Ç¡¤¤½¤ÎÂåÂØʪ¤È¤·¤Æ´Ø¿ô¤¬Ìò¤ËΩ¤Ä¡¥

&br;&br;
&ref(/materials/Gnome-Preferences.png); ÍøÍÑÎã¡¥

#highlighter(language=SH,number=on,cache=on){{
#!/bin/sh

mawaru () {
  local i=1
  while [ $i -le 10 ]
    do
    echo $i
    i=`expr $i + 1`
    done
}

mawaru
}}

¤È¤¤¤¦¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤Ï¤É¤¦¤¤¤¦Æ°ºî¤ò¤¹¤ë¤«¡¤¹Í¤¨¡¤¤½¤·¤ÆÆ°¤«¤·¤Æ¤ß¤è¤¦¡¥
¤Ê¤ª¡¤''while'' ʸ¤Î°ÕÌ£¤Èʸˡ¤Ï¤³¤Î¤¹¤°¸å¤Ç³Ø¤Ö¡¥
µ¤¤Ë¤Ê¤ë¿Í¤Ï¤½¤³¤òÆɤó¤Ç¤«¤éÌá¤Ã¤Æ¤³¤è¤¦¡¥

&ref(/materials/notes.png); ¼Â½¬

Hello ¥¹¥¯¥ê¥×¥È¤ò¤µ¤é¤Ë²þ¤¤·¤Æ¼¡¤Î¤è¤¦¤Ë¤·¤è¤¦.

#highlighter(language=SH,number=on,cache=on){{
#!/bin/sh
# Greeting Script
g='Hello'
d=`date +%d`
dm=`expr $d - 1`
t=`date +%H`
m=`date +%M`

d2min () {
min=`echo "(($1 * 24) + $2) * 60 + $3" | bc -l`
}

d2min $dm $t $m
echo $g, "about $min minutes have passed this month."
}}

¤½¤·¤Æ¡¤¤³¤Î¥¹¥¯¥ê¥×¥È¤ò¼Â¹Ô¤·¤Æ¤ß¤ë¤È¤È¤â¤Ë¡¤²¿¤¬¤É¤¦¤Ê¤Ã¤Æ¤¤¤ë¤Î¤«Íý²ò¤»¤è.


&br;&br;
** Flow control of shell: ¥·¥§¥ë¤ÎÀ©¸æ¹½Â¤ [#w7b0992c]

¡Ö¤â¤·¡Ä¤Ê¤é¤Ð¡×¤È¤«¡¤¡Ö¡Ä¤ò·«¤êÊÖ¤·¤Æ¡Ä¡×¤È¤¤¤¦Æ°ºî¤Ï¼¡¤Î¤è¤¦¤Ë¤¹¤ë¡¥

&br;&br;
*** Conditional branch: ''if'' ¡Ä (ñ½ã)¾ò·ïʬ´ô [#pf39d90c]

¾ò·ï¤Ë±þ¤¸¤Æ(Æó¤Ä¤Ë)ʬ´ô¤·¤Æ¤¤¤¯¡¥
¶ñÂÎŪ¤Ê¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡥ

''if&#9251;¾ò·ï1''
&br;
&nbsp;&nbsp;
''then&#9251;¥³¥Þ¥ó¥É1 ¡Ä''
&br;
&br;
&nbsp;&nbsp;
''elif&#9251;¾ò·ï2''
&br;
&nbsp;&nbsp;&nbsp;&nbsp;
''then&#9251;¥³¥Þ¥ó¥É2 ¡Ä''
&br;
&nbsp;&nbsp;
''elif&#9251;¾ò·ï3''
&br;
&nbsp;&nbsp;
&nbsp;&nbsp;
''then&#9251;¥³¥Þ¥ó¥É3 ¡Ä''
&br;
&br;
&nbsp;&nbsp;
''(°Ê²¼, elif ¡Ä then ¡Ä ¤ò¹¥¤­¤Ê¤À¤±·«¤êÊÖ¤·)''
&br;
&br;
&nbsp;&nbsp;
''else&#9251;¥³¥Þ¥ó¥ÉN ¡Ä''
&br;
''fi''

&ref(/materials/warning.png); ''¾ò·ï'' ¤Î½ñ¤­Êý¤Ë¤Ä¤¤¤Æ¤Ï¡¤¤³¤Î¤¹¤°¸å¤Î 
[[&ref(/materials/JNorth_arrow-right-sm.png); ¾ò·ï¼°¤ª¤è¤Ó¾ò·ï¼°¤Î¥Á¥§¥Ã¥¯>#condition-expression]] 
¤Ç³Ø¤Ü¤¦¡¥

&ref(/materials/warning.png); ''elif'' °Ê²¼¤È ''else'' °Ê²¼¤Ï¸ºß¤·¤Ê¤¯¤Æ¤âÎɤ¤¡¥

&br;&br;
¾å¤Î¹½Ê¸¤Ç¤Îή¤ì¤Ï°Ê²¼¤ÎÄ̤ꡥ

ºÇ½é¤Ë ¾ò·ï1 ¤¬¼Â¹Ô &amp; ¥Á¥§¥Ã¥¯¤µ¤ì¡¤
&br;
¾ò·ï1 ¤¬À®¤êΩ¤Ä(= ¼Â¹Ô¤¬À®¸ù¤¹¤ë) ¢ª ¥³¥Þ¥ó¥É1¡Ä ¤¬¼Â¹Ô¤µ¤ì¤Æ if ʸ¤Ï½ªÎ»¤¹¤ë¡¥
&br;
¾ò·ï1 ¤¬À®¤êΩ¤¿¤Ê¤¤  ¢ª ¼¡¤Î elif ¤Ø¡¥
&br;
&br;
¢ª ¼¡¤Î elif ¤ËÍ褿¾ì¹ç¡¥¾ò·ï2 ¤¬¥Á¥§¥Ã¥¯¤µ¤ì¡¤
&br;
¾ò·ï2 ¤¬À®¤êΩ¤Ä ¢ª ¥³¥Þ¥ó¥É2¡Ä ¤¬¼Â¹Ô¤µ¤ì¤Æ if ʸ¤Ï½ªÎ»¤¹¤ë¡¥
&br;
¾ò·ï2 ¤¬À®¤êΩ¤¿¤Ê¤¤  ¢ª ¼¡¤Î elif ¤Ø¡¥
&br;
&br;
(¡Ä °Ê²¼¡¤·«¤êÊÖ¤· ¡Ä)
&br;
&br;
¢ª else ¤ËÍ褿¾ì¹ç¡¥Ìµ¾ò·ï¤Ç ¥³¥Þ¥ó¥ÉN ¤¬¼Â¹Ô¤µ¤ì¤Æ if ʸ¤Ï½ªÎ»¤¹¤ë¡¥

&br;&br;
&ref(/materials/notes.png); ¼Â½¬

¼¡¤Î¤è¤¦¤ÊÆâÍƤΥ¹¥¯¥ê¥×¥È¤òºî¤ê¡¤¼Â¹Ô¤·¡¤Íý²ò¤»¤è.
¤¿¤À¤·¡¤''if'' ¤Î¤¹¤°¸å¤Î ''[&#9251;-e&#9251;$fn&#9251;]'' ¤È¤¤¤¦Éôʬ¤Ë¤Ä¤¤¤Æ¤Ï¸å½Ò¤¹¤ë¤Î¤ÇÍý²ò¤Ï¸å²ó¤·¤Ç¤è¤¤.

#highlighter(language=SH,number=on,cache=on){{
#!/bin/sh

fn=~/.bashrc

if [ -e $fn ]
  then
    cat $fn
  else
    echo "You has no $fn."
fi
}}

&br;&br;
*** Pattern match: ''case'' ¡Ä (¥Ñ¥¿¡¼¥ó¥Þ¥Ã¥Á)¾ò·ïʬ´ô [#vc2a87a1]

¤¢¤ë¡Öʸ»úÎó¡×¤¬ÍÑ°Õ¤·¤¿¥Ñ¥¿¡¼¥ó¤È¥Þ¥Ã¥Á¤¹¤ë¤«¤É¤¦¤«¤Çʬ´ô¤¹¤ë¡¥
ñ½ã¤ÊÎóµó¤Î¾ì¹çʬ¤±¤ËÊØÍø¡¥
¥Ñ¥¿¡¼¥ó¤Ï "&brvbar;" ¤Ç¶èÀڤäÆÊÂÎóɽµ­(or ¤ò°ÕÌ£¤¹¤ë)¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡¥

¶ñÂÎŪ¤Ê¹½¤Ïʸ°Ê²¼¤ÎÄ̤ꡥ
&br;&br;

''case&#9251;ʸ»úÎó&#9251;in''
&br;
&nbsp;
&nbsp;
''¥Ñ¥¿¡¼¥ó1)&#9251;¥³¥Þ¥ó¥É1¡Ä ;;''
&br;
&nbsp;
&nbsp;
''¥Ñ¥¿¡¼¥ó2)&#9251;¥³¥Þ¥ó¥É2¡Ä ;;''
&br;
&br;
''( °Ê²¼, ¥Ñ¥¿¡¼¥ók)&#9251;¥³¥Þ¥ó¥Ék¡Ä;;  ¤ò¹¥¤­¤Ê¤À¤±·«¤êÊÖ¤· )''
&br;
&br;
&nbsp;
&nbsp;
''*)&#9251;¥³¥Þ¥ó¥ÉN¡Ä''
&br;
''esac''

&br;
&br;
&ref(/materials/warning.png); *) ¤Ï¸ºß¤·¤Ê¤¯¤Æ¤âÎɤ¤¡¥


&br;&br;
ή¤ì¤Ï°Ê²¼¤ÎÄ̤ꡥ

&br;&br;
ºÇ½é¤Ë ʸ»úÎó ¤òɾ²Á¤·¤Æ¡¤
&br;
ʸ»úÎ󤬥ѥ¿¡¼¥ó1 ¤È¥Þ¥Ã¥Á¤¹¤ë ¢ª ¥³¥Þ¥ó¥É1¡Ä ¤¬¼Â¹Ô¤µ¤ì¤Æ case ʸ¤Ï½ªÎ»¤¹¤ë¡¥
&br;
¥Þ¥Ã¥Á¤·¤Ê¤¤  ¢ª ¼¡¤Î¥Ñ¥¿¡¼¥ó¤È¥Þ¥Ã¥Á¤¹¤ë¤«(°Ê²¼·«¤êÊÖ¤·)
&br;
&br;
¢ª * ) ¤ËÍ褿¾ì¹ç¡¥Ìµ¾ò·ï¤Ç ¥³¥Þ¥ó¥ÉN ¤¬¼Â¹Ô¤µ¤ì¤Æ case ʸ¤Ï½ªÎ»¤¹¤ë¡¥

&br;
&br;
&ref(/materials/notes.png); ¼Â½¬

&br;
&br;
¼¡¤Î¤è¤¦¤ÊÆâÍƤΥ¹¥¯¥ê¥×¥È¤òºî¤ê¡¤¼Â¹Ô¤·¡¤Íý²ò¤»¤è.

#highlighter(language=SH,number=on,cache=on){{
#!/bin/sh

echo -n "Please input file name: "
read fn

case $fn in
  *.txt )
    echo "$fn is text file.";;
  *.c )
    echo "$fn is C program file.";;
  * )
    echo "Hey, what is $fn ? You know it?";;
esac
}}

&br;&br;
*** ''for'' ¡Ä ¤¢¤Æ¤Ï¤Þ¤ëÊÑ¿ô¤Î·«¤êÊÖ¤· [#if8bbcb6]

¶ñÂÎŪ¤Ê¹½Ê¸¤ÈÆ°ºî¤Îή¤ì¤Ï°Ê²¼¤ÎÄ̤ꡥ

&br;&br;
''for&#9251;ÊÑ¿ô&#9251;in&#9251;¥Ñ¥¿¡¼¥óor¥ê¥¹¥È''
&br;
''do''
&br;
&nbsp;
&nbsp;
''¥³¥Þ¥ó¥É¡Ä''
&br;
''done''

&br;&br;
¤Þ¤º¡¤¥Ñ¥¿¡¼¥óor¥ê¥¹¥È¤òŸ³«¤·¤Æ¡¤¥ê¥¹¥È¤òÀ¸À®¤¹¤ë¡¥
&br;
¤½¤Î¥ê¥¹¥È¤ÎÍ×ÁǤò½çÈÖ¤Ë ÊÑ¿ô ¤ËÂåÆþ¤·¤Æ¡¤
¤½¤Î¤¿¤Ó¤Ë¥³¥Þ¥ó¥É¡Ä ¤ò¼Â¹Ô¤¹¤ë¡¥

&br;
&br;
&ref(/materials/notes.png); ¼Â½¬

&br;
&br;
¼¡¤Î¤è¤¦¤ÊÆâÍƤΥ¹¥¯¥ê¥×¥È¤òºî¤ê¡¤¼Â¹Ô¤·¡¤Íý²ò¤»¤è.

#highlighter(language=SH,number=on,cache=on){{
#!/bin/sh

for x in 0 1 2 3 4 5 6 7 8 9 10
do
  v=`echo "$x * 0.31416" | bc -l`
  echo "sin($v) = " `echo "s($v)" | bc -l`.
done
}}


&br;&br;
*** Loop: ''while, until'' ¡Ä ¾ò·ï¥Á¥§¥Ã¥¯¤Ä¤­¤Ç¤Î·«¤êÊÖ¤·¡¥ [#n663e214]

¶ñÂÎŪ¤Ê¹½Ê¸¤ÈÆ°ºî¤Îή¤ì¤Ï°Ê²¼¤ÎÄ̤ꡥ

&br;&br;
''while&#9251;¾ò·ï''
&br;
''do''
&br;
&nbsp;
&nbsp;
''¥³¥Þ¥ó¥É¡Ä''
&br;
''done''

&br;&br;
&ref(/materials/warning.png); until ¤Î¹½Ê¸¤âƱ¤¸¡¥

&br;&br;
¤Þ¤º¡¤¾ò·ï¤¬À®¤êΩ¤Ä¤«¥Á¥§¥Ã¥¯¡¥
&br;
[ while ¤Î¾ì¹ç] À®¤êΩ¤Ä¤Ê¤é¤Ð¡¤¥³¥Þ¥ó¥É¡Ä ¤ò¼Â¹Ô¡¥
&br;
[ until ¤Î¾ì¹ç] À®¤êΩ¤¿¤Ê¤¤¤Ê¤é¤Ð¡¤¥³¥Þ¥ó¥É¡Ä ¤ò¼Â¹Ô¡¥
&br;
&br;
ºÆ¤Ó¡¤¾ò·ï¤¬À®¤êΩ¤Ä¤«¥Á¥§¥Ã¥¯¡¥
°Ê²¼¡¤·«¤êÊÖ¤·¡¥

&br;
&br;
&ref(/materials/notes.png); ¼Â½¬

&br;
&br;
¼¡¤Î¤è¤¦¤ÊÆâÍƤΥ¹¥¯¥ê¥×¥È¤òºî¤ê¡¤¼Â¹Ô¤·¡¤Íý²ò¤»¤è.
¤¿¤À¤·¡¤''while'' ¤Î¤¹¤°¸å¤Î ''[&#9251;$x&#9251;-le&#9251;10&#9251;]'' ¤È¤¤¤¦Éôʬ¤Ë¤Ä¤¤¤Æ¤Ï¸å½Ò¤¹¤ë¤Î¤ÇÍý²ò¤Ï¸å²ó¤·¤Ç¤è¤¤.

#highlighter(language=SH,number=on,cache=on){{
#!/bin/sh

x=0

while [ $x -le 10 ]
do
  v=`echo "$x * 0.31416" | bc -l`
  echo "sin($v) = " `echo "s($v)" | bc -l`.
  x=`expr $x + 1`
done
}}

&br;&br;
*** Break-out: ''break'' ¡Ä¥ë¡¼¥×æ½Ð¡¥ [#jd847327]

¤³¤Î¥³¥Þ¥ó¥É¤¬¼Â¹Ô¤µ¤ì¤ë¤È¡¤for¡¤while, until ¤Î¥ë¡¼¥×¤«¤éæ½Ð¤¹¤ë¡¥

&br;&br;
*** Termination: ''exit'' ¡Ä ½ªÎ»¡¥ [#ba2d3c48]

¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤Î½ªÎ»¡¥

&br;&br;
** Conditional statement: ¾ò·ï¼°¤ª¤è¤Ó¾ò·ï¼°¤Î¥Á¥§¥Ã¥¯ [#condition-expression]

sh ·Ï¥·¥§¥ë¤Ç¤Ï¡¤¾ò·ï¤Ï´ðËÜŪ¤Ë

> ''[&#9251;¾ò·ï¼°&#9251;]''

¤È¤¤¤¦·Á¼°¤Ç½ñ¤«¤ì¤ë¡¥
&br;
&br;
&ref(/materials/warning.png); ''['' ¤È¾ò·ï¼°¤Î´Ö¤Ë¤Ï¥¹¥Ú¡¼¥¹&#9251;¤¬É¬Íסª
&br;
# ¾Ü¤·¤¯¸À¤¦¤È¡¤[ ¤Ï¾ò·ï¼°¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡¤¤È¤¤¤¦µ¡Ç½¤ò»ý¤Ä¥³¥Þ¥ó¥É¤Ç¤¢¤ë¡¥
// ËÜÍè¤Î̾Á°¤Ï ''test'' ¤Ç¤¢¤ë¡¥
// ¤É¤¦¤Ê¤Ã¤Æ¤¤¤ë¤Î¤«¤Ï¡¤
// ''ls -lg `which [`'' ¤Ê¤É¤È¤·¤Æ¤ß¤ë¤Èʬ¤«¤ë¤À¤í¤¦¡¥
&br;
&br;
¾ò·ï¼°¤Ï¡¤´ðËÜŪ¤Ë¡Öñ¹à±é»»»Ò¡×¤«¡ÖÆó¹à±é»»»Ò¡×¤È¹àÌܤÎÁȤ߹ç¤ï¤»¡¥


*** statement for files: ¥Õ¥¡¥¤¥ë¤Ë´Ø¤¹¤ë¾ò·ï¼° [#n01370f0]

: -e&#9251;̾Á° | ¤½¤Î̾Á°¤Î¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¤Ê¤é¤Ð¿¿¡¥
: -d&#9251;̾Á° | ¤½¤Î̾Á°¤Î¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤¹¤ë¤Ê¤é¤Ð¿¿¡¥
: -f&#9251;̾Á° | ¤½¤Î̾Á°¤ÎÄ̾ï¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¤Ê¤é¤Ð¿¿¡¥
: -r&#9251;̾Á° | ¤½¤Î̾Á°¤ÎÆɤ߹þ¤ß²Äǽ¤Ê¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¤Ê¤é¤Ð¿¿¡¥
: -w&#9251;̾Á° | ¤½¤Î̾Á°¤Î½ñ¤­¹þ¤ß²Äǽ¤Ê¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¤Ê¤é¤Ð¿¿¡¥
: -x&#9251;̾Á° | ¤½¤Î̾Á°¤Î¼Â¹Ô²Äǽ¤Ê¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¤Ê¤é¤Ð¿¿¡¥
: -s&#9251;̾Á° | ¤½¤Î̾Á°¤Î¥µ¥¤¥º¤¬ 0 ¤è¤êÂ礭¤Ê¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¤Ê¤é¤Ð¿¿¡¥

&ref(/materials/notes.png); ¼Â½¬

À©¸æ¹½Â¤ if ¤Î¤È¤³¤í¤Î¼Â½¬Îã¤Ê¤É¤ò»²¹Í¤Ë¤·¤Æ¡¤¾å¤Î¾ò·ï¤ò¤Ê¤ë¤Ù¤¯Á´Éô»î¤¹¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤Æ¤ß¤è.


*** statement for string: ʸ»úÎó¤Ë´Ø¤¹¤ë¾ò·ï¼° [#p7b0eae9]

: -z&#9251;ʸ»úÎó | ʸ»úÎó¤ÎŤµ¤¬¥¼¥í¤Ê¤é¤Ð¿¿¡¥
: -n&#9251;ʸ»úÎó | ʸ»úÎó¤ÎŤµ¤¬¥¼¥í¤Ç¤Ê¤±¤ì¤Ð¿¿¡¥
: ʸ»úÎó1&#9251;==&#9251;ʸ»úÎó2 | ʸ»úÎó¤¬Åù¤·¤±¤ì¤Ð¿¿(¸«¤¨¤Ë¤¯¤¤¤¬¡¤¡Ö=¡×¤¬Æó¤Ä¤Ä¤Ê¤¬¤Ã¤Æ¤¤¤ë)¡¥
: ʸ»úÎó1&#9251;!=&#9251;ʸ»úÎó2 | ʸ»úÎ󤬰ۤʤì¤Ð¿¿¡¥


&ref(/materials/notes.png); ¼Â½¬

À©¸æ¹½Â¤ if ¤Î¤È¤³¤í¤Î¼Â½¬Îã¤Ê¤É¤ò»²¹Í¤Ë¤·¤Æ¡¤¾å¤Î¾ò·ï¤ò¤Ê¤ë¤Ù¤¯Á´Éô»î¤¹¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤Æ¤ß¤è.


*** statement for number: ¿ôÃͤ˴ؤ¹¤ë¾ò·ï¼° [#kd6c5a11]

: ¿ôÃÍ1&#9251;-eq&#9251;¿ôÃÍ2 | ¿ôÃͤ¬Åù¤·¤±¤ì¤Ð¿¿¡¥
: ¿ôÃÍ1&#9251;-ne&#9251;¿ôÃÍ2 | ¿ôÃͤ¬°Û¤Ê¤ì¤Ð¿¿¡¥
: ¿ôÃÍ1&#9251;-gt&#9251;¿ôÃÍ2 | ¿ôÃÍ1 &gt; ¿ôÃÍ2 ¤Ê¤é¤Ð¿¿¡¥
: ¿ôÃÍ1&#9251;-ge&#9251;¿ôÃÍ2 | ¿ôÃÍ1 ¡æ ¿ôÃÍ2 ¤Ê¤é¤Ð¿¿¡¥
: ¿ôÃÍ1&#9251;-lt&#9251;¿ôÃÍ2 | ¿ôÃÍ1 &lt; ¿ôÃÍ2 ¤Ê¤é¤Ð¿¿¡¥
: ¿ôÃÍ1&#9251;-le&#9251;¿ôÃÍ2 | ¿ôÃÍ1 ¡å ¿ôÃÍ2 ¤Ê¤é¤Ð¿¿¡¥

&ref(/materials/warning.png); ¾ò·ï¼°¤ÎȽÄê¤Ë¤ÏÀ°¿ô¤·¤«»È¤¨¤Ê¤¤¤¾¡ª


&ref(/materials/notes.png); ¼Â½¬

À©¸æ¹½Â¤ if ¤Î¤È¤³¤í¤Î¼Â½¬Îã¤Ê¤É¤ò»²¹Í¤Ë¤·¤Æ¡¤¾å¤Î¾ò·ï¤ò¤Ê¤ë¤Ù¤¯Á´Éô»î¤¹¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤Æ¤ß¤è.


*** other statement: ¤½¤Î¾ ¾ò·ï¼° [#qafd20a6]


: !¾ò·ï¼° | ''NOT''¤òɽ¤¹.
¾ò·ï¼°¤¬À®¤êΩ¤¿¤Ê¤±¤ì¤Ð¿¿¡¥
: ¾ò·ï¼°1&#9251;-a&#9251;¾ò·ï¼°2 | ''AND''¤òɽ¤¹.
ξÊý¤Î¾ò·ï¼°¤¬À®¤êΩ¤Æ¤Ð¿¿¡¥
: ¾ò·ï¼°1&#9251;-o&#9251;¾ò·ï¼°2 | ''OR''¤òɽ¤¹.
¤É¤Á¤é¤«¤Î¾ò·ï¼°¤¬À®¤êΩ¤Æ¤Ð¿¿¡¥
: ( ¾ò·ï¼° ) | ¾ò·ï¼°¤ò¥°¥ë¡¼¥×²½¤¹¤ë¡¥
Ê£»¨¤Ê¾ò·ï¼°¤ò½ñ¤¯¤È¤­¤Ë¤Ï¡¤
°Õ¿Þ¤È°Û¤Ê¤ë·ë²Ì¤Ë¤Ê¤é¤Ê¤¤¤¿¤á¤Ë¤âÀѶËŪ¤Ë»È¤¦¤Ù¤·¡¥


&ref(/materials/notes.png); ¼Â½¬

À©¸æ¹½Â¤ if ¤Î¤È¤³¤í¤Î¼Â½¬Îã¤Ê¤É¤ò»²¹Í¤Ë¤·¤Æ¡¤¾å¤Î¾ò·ï¤ò¤Ê¤ë¤Ù¤¯Á´Éô»î¤¹¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤Æ¤ß¤è.



&br;&br;
* Report: ¥ì¥Ý¡¼¥È [#pd9295d7]

°Ê²¼¤Î²ÝÂê¤Ë¤Ä¤¤¤Æǽ¤¦¸Â¤ê¸­ÌÀ¤ÊÄ´ºº¤È¹Í»¡¤ò¹Ô¤¤¡¤
&br; 
''AppliedMath7-Report-07''
&br;
¤È¤¤¤¦Âê̾¤ò¤Ä¤±¤Æ e-mail ¤Ë¤Æ¶µ´±°¸¤Ë¥ì¥Ý¡¼¥È¤È¤·¤ÆÄó½Ð¤»¤è. ¤Ê¤ª¡¤¥ì¥Ý¡¼¥È¤ò e-mail ¤ÎÂå¤ï¤ê¤Ë TeX ¤ÇºîÀ®¤·¤¿½ñÌ̤ˤÆÄó½Ð¤·¤Æ¤â¤è¤¤.  

** Exercises: ²ÝÂê [#z1566966]

+ °ú¿ô1 ¤Ë¡Ö¶â³Û¡×¤ò¡¤°ú¿ô2 ¤Ë¡ÖÆü¿ô¡×¤òÆþ¤ì¤ë¤È¡¤
¤½¤Î¶â³Û¤Ç¤½¤ÎÆü¿ô¤À¤±¤ª¶â¤ò¼Ú¤ê¤¿¤éºÇ½ªÅª¤Ë¤¤¤¯¤é¤Ë¤Ê¤ë¤«¤ò·×»»¤¹¤ë¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤òºîÀ®¤»¤è¡¥
¤¿¤À¤·¡¤¶âÍø¤Ï 10Æü¤Ç 1³ä (Ê£Íø)¤È¤¹¤ë¡¥
&br;
&ref(/materials/warning.png);
¤¿¤À¤·¡¤
read ¥³¥Þ¥ó¥É¤Ê¤É¤ò»È¤ï¤º¡¤¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤Î°ú¿ô¤ò¤­¤Á¤ó¤È½èÍý¤¹¤ë¤³¤È¡¥
&br;
&br;
+ ¥Õ¥¡¥¤¥ë¤ò¾Ãµî¤¹¤ë¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤òºîÀ®¤»¤è¡¥
¤¿¤À¤·¡¤¼¡¤Îµ¡Ç½¤ò»ý¤Ã¤Æ¤¤¤ë¤è¤¦¤Ë¤»¤è¡¥
++ ¥Õ¥¡¥¤¥ë¤Î¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¤«¤É¤¦¤«Ä´¤Ù¤Æ¡¤
--- ̵¤¤ ¡Ä ºîÀ®¤¹¤ë¡¥
--- ¤½¤Î¿ô¤¬3¤Ä°Ê²¼ ¡Ä ¿·¤¿¤Ë¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¡¥
--- ¤½¤Î¿ô¤¬3¤Ä¤è¤ê¿¤¤ ¡Ä °ìÈָŤ¤¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ë¤ò¾Ãµî¤·¤Æ¤«¤é¡¤
¿·¤¿¤Ë¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¡¥
++ °Ê¾å¤Îºî¶È¤ò¹Ô¤Ã¤Æ¤«¤é¡¤¥Õ¥¡¥¤¥ë¤ò¾Ãµî¤¹¤ë¡¥
&br;
&br;
+ ¤³¤ì¤Þ¤Ç¤Î¼ø¶È²ÝÂê¤Ç¡¤¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤òÍøÍѤ·¤Æ²ò·è¤Ç¤­¤ë²ÝÂ꤬¤¢¤ì¤Ð¤½¤ì¤ò¹Ô¤¨¡¥



&br;&br;
* about Icons, ClipArts [#s29ecba7]

For details, see [[&ref(/materials/JNorth_arrow-right-sm.png); this>materials]].

// ¨¬¨­¨®¨¯¨°¨±¨²¨³¨´¨µ¨¶


// ¥³¥Þ¥ó¥É¥é¥¤¥óÆþÎϤϡֹÔƬ¤ò > ¤Ç»Ï¤á¤ë¡×.
// ¥³¥Þ¥ó¥É¥é¥¤¥ó½ÐÎϤϡֹÔƬ¤ò¥Ö¥é¥ó¥¯¤Ç»Ï¤á¤ë¡×.

// ¼Â½¬¥¢¥¤¥³¥ó
// &ref(/materials/notes.png); 

// Ãí°Õ¥¢¥¤¥³¥ó
// &ref(/materials/warning.png);

// Link ¥¢¥¤¥³¥ó
// &ref(/materials/JNorth_arrow-right-sm.png);

// OK ¥¢¥¤¥³¥ó
// &ref(/materials/OK.png);

// NG ¥¢¥¤¥³¥ó
// &ref(/materials/NG.png);

// ¥µ¥ó¥×¥ë¥¢¥¤¥³¥ó
// &ref(/materials/Gnome-Preferences.png);

// Âçʸ»ú¤Ç¤Î¶¯Ä´ 
// CENTER:&size(24){''¤Û¤²¤Û¤²''};

// programu source ɽµ­
// #highlighter(language=ruby,number=on,cache=on){{}}

// ¥Ñ¥¤¥×
// &brvbar;

// ¶õÇòµ­¹æ
// &#9251;