#CONTENTS
// Âè 7 ²ó -- ¥·¥§¥ë¥¹¥¯¥ê¥×¥È
* What are shell scripts?: ¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤È¤Ï [#g030e1fc]
[[&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 ·Ï¤Ç³Ø½¬¤·¤Æ¤ª¤¯.
&br;&br;
* Preparation and rough explanation: ½àÈ÷¤È°ìÏ¢¤Îή¤ì [#b36005f7]
** Preparation: ½àÈ÷ [#mb07d9fd]
+ ¥¹¥¯¥ê¥×¥È¥Õ¥¡¥¤¥ë¤òÃù¢¤·¤Æ¤ª¤¯¥Ç¥£¥ì¥¯¥È¥ê¤òÍÑ°Õ¡¥
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␣~/.profile''
<
¤ÈÆþÎϤ¹¤ë¤È¤½¤Î¾ì¤Ç''.profile''¥Õ¥¡¥¤¥ë¤ÎÃæ¿È¤¬È¿±Ç¤µ¤ì¤ë¤Î¤Ç¤½¤ì¤Ç¤â¤è¤¤¡¥
&ref(/materials/notes.png); ¼Â½¬: ¾å¤Î½àÈ÷ 1, 2 ¤ò¤·¤Æ¤ª¤³¤¦¡¥
¤¿¤À¤·¡¤ºåÂç¤Î´Ä¶¤Ç¤ÏºÆ¥í¥°¥¤¥ó¤·¤¿»þ¤Ë .profile ¤ÎÆâÍƤ¬È¿±Ç¤µ¤ì¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡¥
¤½¤Î¾ì¹ç¤Ï¡¤¥í¥°¥¤¥ó¤·¤¿¤é¾å¤Î''source''¤ò»È¤¦ÊýË¡¤Ç path ¤ò(Ëè²ó¡©)ºÆÀßÄꤷ¤è¤¦¡¥
** Rough explanation: ¥·¥§¥ë¥¹¥¯¥ê¥×¥ÈÍøÍѤΰìÏ¢¤Îή¤ì [#flow-of-shell-scripts]
¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤òºî¤Ã¤Æ¡¤¤½¤·¤Æ»È¤¦¤Ë¤Ï¤¤¤Ä¤â°Ê²¼¤ÎÆóÃʳ¬¤òƧ¤ó¤Ç¤ª¤±¤ÐÎɤ¤¡¥
+ ¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤òºî¤ê¡¤1 ¤ÇÍÑ°Õ¤·¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤¯.
&br;&br;
+ ¥¹¥¯¥ê¥×¥È¥Õ¥¡¥¤¥ë¤Ë¼Â¹Ôµö²Ä¤òÍ¿¤¨¤ë¡¥
&br;
Î㤨¤Ð¡¤¥¹¥¯¥ê¥×¥È¥Õ¥¡¥¤¥ë¤¬ test ¤È¤¤¤¦Ì¾Á°¤Ê¤é¤Ð
> ''chmod␣u+x␣~/bin/test''
<
¤È¤¹¤ì¤ÐÎɤ¤¡¥
&br;&br;
* Basic structure of shell scripts: ¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤Î´ðËܹ½Â¤(bash) [#tc1d4e99]
[[&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␣-n''
¤ÈÀèƬ¹Ô¤Ë½ñ¤±¤Ð¤è¤¤¡¥
¥Õ¥¡¥¤¥ë¤Îºï½ü¤Ê¤É¡¤¤ä¤ä´í¸±¤Êºî¶È¤ò¹Ô¤¦¥¹¥¯¥ê¥×¥È¤Ï¤³¤ì¤Ç¥Á¥§¥Ã¥¯¤¹¤ë¤ÈÎɤ¤¤À¤í¤¦¡¥
&br;&br;
&ref(/materials/warning.png); ¼Â¹Ô»þ¤Ë¥¹¥¯¥ê¥×¥È¤ÎÆâÍƤâɽ¼¨¤·¤¿¤¤¾ì¹ç¤Ï¡¤
> ''#!/bin/sh␣-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: ¥³¥Þ¥ó¥É¤ÎϢ³¼Â¹Ô [#b37e107e]
¥³¥Þ¥ó¥É¤ÎϢ³¼Â¹ÔÅù¤Ë¤Ä¤¤¤Æ
[[&ref(/materials/JNorth_arrow-right-sm.png); Ϣ³¼Â¹Ô>¼ø¶È»ñÎÁ/01#execution-multiple-commands]]
¤ÎÉôʬ¤Ç³Ø½¬¤·¤¿¤¬¡¤¤³¤³¤Ç¾ðÊó¤òÄɲ䷤Ƥª¤¯¡¥
: ''¥³¥Þ¥ó¥É1␣;␣¥³¥Þ¥ó¥É2'' |
¥³¥Þ¥ó¥É1 ¤ò¼Â¹Ô¸å¡¤¥³¥Þ¥ó¥É2 ¤ò¼Â¹Ô¤¹¤ë¡¥
: ''( ¥³¥Þ¥ó¥É1␣;␣¥³¥Þ¥ó¥É2 )'' |
¥³¥Þ¥ó¥É1 ¤ò¼Â¹Ô¸å¡¤¥³¥Þ¥ó¥É2 ¤ò¼Â¹Ô¤¹¤ë¡Ä ¤Î¤À¤¬¡¤
¤³¤ì¤éÆó¤Ä¤Î¥³¥Þ¥ó¥É¤ò¡Ö¥µ¥Ö¥·¥§¥ë¡×¤Î¤â¤È¤Ç¼Â¹Ô¤¹¤ë(¥°¥ë¡¼¥×²½)¡¥
¥µ¥Ö¥·¥§¥ë¤Ç¹Ô¤Ã¤¿´Ä¶Êѹ¹¤Ï¤â¤È¤Î¥·¥§¥ë¤Ë±Æ¶Á¤·¤Ê¤¤¡¥
¤è¤Ã¤Æ¡¤¾õÂÖ¤ò°ì»þŪ¤ËÊѹ¹¤·¤Æºî¶È¤¹¤ë¤È¤¤ËÊØÍø¡¥
&br;&br;
&ref(/materials/Gnome-Preferences.png); ¥°¥ë¡¼¥×²½¤ÎÎã.&br;
Î㤨¤Ð¡¤
//
> '' (cd␣/tmp;␣ls␣-a) ''
<
¤È¤¹¤ë¤È¡¤/tmp ¤Çºî¶È¤¬¹Ô¤ï¤ì¤ë¤¬¡¤½ª¤ï¤Ã¤¿¤¢¤È¤Ë¥Ç¥£¥ì¥¯¥È¥ê¤ÏÊѹ¹¤µ¤ì¤Æ¤¤¤Ê¤¤¡¥
: ''¥³¥Þ¥ó¥É1␣&&␣¥³¥Þ¥ó¥É2'' |
AND ¼Â¹Ô¡¥
¥³¥Þ¥ó¥É1 ¤ò¼Â¹Ô¤·¤Æ¤ß¤Æ¡¤¥³¥Þ¥ó¥É1 ¤¬À®¸ù¤·¤¿¤Ê¤é¤Ð(¥¨¥é¡¼¤Ë¤Ê¤é¤Ê¤¤»þ)¡¤
¥³¥Þ¥ó¥É2 ¤ò¼Â¹Ô¤¹¤ë¡¥
: ''¥³¥Þ¥ó¥É1␣¦¦␣¥³¥Þ¥ó¥É2'' |
OR ¼Â¹Ô¡¥
¥³¥Þ¥ó¥É1 ¤ò¼Â¹Ô¤·¤Æ¤ß¤Æ¡¤¥³¥Þ¥ó¥É1 ¤¬¼ºÇÔ¤·¤¿¤Ê¤é¤Ð(¥¨¥é¡¼¤Ë¤Ê¤Ã¤¿»þ)¡¤
¥³¥Þ¥ó¥É2 ¤ò¼Â¹Ô¤¹¤ë¡¥
&br;&br;
* Grammer of shell scripts: ¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤Îʸˡ [#g182471f]
** Comment out: ¥³¥á¥ó¥È¥¢¥¦¥È [#e28cc369]
¥·¥§¥ë¥¹¥¯¥ê¥×¥ÈÃæ¤Ç ''#'' ¤È¤¤¤¦Ê¸»ú¤¬¤¢¤ë¤È¡¤
¤½¤³¤«¤é¹ÔËö¤Þ¤Ç¤¬¥³¥á¥ó¥È¤È¤·¤Æ¼è¤ê°·¤ï¤ì¤ë(¤¿¤À¤·¡¤Ê¸»úÎóÃæ¤Ï½ü¤¯)¡¥
** Variables: ÊÑ¿ô [#ad17fae2]
[[&ref(/materials/JNorth_arrow-right-sm.png); ¥·¥§¥ëÊÑ¿ô>¼ø¶È»ñÎÁ/04#shell-variables]]
¤Ç³Ø¤ó¤À¤È¤ª¤ê¤Ë¡¤¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤ÇÊÑ¿ô¤¬»È¤¨¤ë¡¥
&ref(/materials/warning.png); ÊÑ¿ôÀßÄê¤Î¤È¤¡¤ÊÑ¿ô̾¤È¡Ö=¡×¤Î´Ö¤Ë¥¹¥Ú¡¼¥¹¤òÆþ¤ì¤ë¤Ê¡ª
&br;
&ref(/materials/warning.png); ¼Â¤Ï¡¤ÊÑ¿ô»²¾È¤ÎºÝ¤Ë
//
> ''${ÊÑ¿ô̾}''
<
¤È¤·¤¿Êý¤¬¡¤¤è¤ê°ÂÁ´¤À¡¥
&br;&br;
** String: ʸ»úÎó [#nb967a9e]
ʸ»úÎó¤Ï quotation ¤Çɽ¤¹¡¥
&br;
¤³¤Î»þ¡¤
¡Ö'¡×(¥·¥ó¥°¥ë¥¯¥©¡¼¥È)
¤Ç°Ï¤à¤Î¤È¡¤
¡Ö"¡×(¥À¥Ö¥ë¥¯¥©¡¼¥È)
¤Ç°Ï¤à¤Î¤Ç¤ÏÀ¼Á¤¬°Û¤Ê¤ë¤Î¤ÇÃí°Õ¤¬É¬ÍפÀ¡¥
: ¡Ö'¡×(¥·¥ó¥°¥ë¥¯¥©¡¼¥È) ¤Ç°Ï¤ó¤Àʸ»úÎó |
²¿¤¬½ñ¤«¤ì¤Æ¤¤¤Æ¤âñ¤Ê¤ëʸ»úÎó¤È¤·¤Æ°·¤¦¡¥
&br;&br;
: ¡Ö"¡×(¥À¥Ö¥ë¥¯¥©¡¼¥È) ¤Ç°Ï¤ó¤Àʸ»úÎó |
$ ` \ ¤Î3¤Ä¤ÎÆüìʸ»ú¤ò¤³¤ì¤Þ¤Ç³Ø¤ó¤ÀÆüì¤Ê°ÕÌ£¤Ç°·¤¦("(¥À¥Ö¥ë¥¯¥©¡¼¥È)¤Ç°Ï¤Þ¤ì¤¿Ê¸»úÎó¤ÎÃæ¤ÇÊÑ¿ô¤Î»²¾È¤Ï¹Ô¤ï¤ì¤ë).
"(¥À¥Ö¥ë¥¯¥©¡¼¥È) ¤Î°Ï¤ßÆâÉô¤Ç¾å¤Î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: °ú¿ô [#q2732d7b]
°ú¿ô¤È¤Ï¡¤¥×¥í¥°¥é¥à¤òµ¯Æ°¤¹¤ë¤È¤¤Ë¡¤°ì½ï¤ËÍ¿¤¨¤ë¤ª¤Þ¤±¤Ç¤¢¤ë¡¥
Î㤨¤Ð
''ls␣-a␣/tmp''
¤È¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤¿¤é¡¤(¹¤¤°ÕÌ£¤Ç)°ú¿ô¤Ï ''-a, /tmp'' ¤ÎÆó¤Ä¤Ç¤¢¤ë¡¥
&br;
¤³¤Î°ú¿ô¤Ï°Ê²¼¤Î¤è¤¦¤Ë°·¤ï¤ì¤ë¡¥
¤½¤³¤Ç¡¤°ú¿ô¤Î¼è¤ê°·¤¤¤Ï¤¤Á¤ó¤È¤Ç¤¤Ê¤¤¤È¤¤¤±¤Ê¤¤¤À¤í¤¦¡¥
¼¡¤Ë°ú¿ô¤¬¤É¤¦¼è¤ê°·¤ï¤ì¤ë¤«¤ò¼¨¤¹¡¥
¢£ sh ·Ï¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤Ç¤Î°ú¿ô¤Î°·¤¤ ¢£
| ÊÑ¿ô | °ÕÌ£ |h
| ''$#'' | °ú¿ô¤Î¸Ä¿ô |
| ''$n'' | n ÈÖÌܤΰú¿ô¡¥&br; ¤¿¤À¤·¡¤0ÈÖÌܤΰú¿ô ''$0'' ¤ÏÆÃÊ̤ǡ¤¥·¥§¥ë¥¹¥¯¥ê¥×¥È¼«¿È¤Î̾Á°¤Ë¤Ê¤ë¡¥&br;&br; ¤Þ¤¿¡¤n > 9 ¤Ç¤¢¤ë¾ì¹ç¤Ï ''${12}'' ¤Ê¤É¤È¡¤Ã楫¥Ã¥³¤Ç°Ï¤Þ¤Ê¤¤¤È»È¤¨¤Ê¤¤¡¥ |
| ''$*'' | °ú¿ôÁ´¤Æ¡¥|
| %%''${m}-${n}''%% | m ÈÖÌܤ«¤é n ÈÖÌܤޤǤΰú¿ô¤Î»ØÄê, ¤Ï sh ·Ï¤Ç¤Ï͸ú¤Ç¤Ï¤Ê¤¤¡¥csh ·Ï¤À¤È¡¤Î㤨¤Ð ''$argv{m-n}'' ¤Ç»ØÄê¤Ç¤¤ë. bash ¤Ê¤É¤Ç¤Ï¡¤°ú¿ô¤ÎÊ£»¨¤Ê½èÍý¤Ï ''getopts'' ¤Ç¹Ô¤¦¤Î¤¬Îɤ¤¤À¤í¤¦¡¥ |
| %%''${m}-${n}''%% | m ÈÖÌܤ«¤é n ÈÖÌܤޤǤΰú¿ô¤Î»ØÄê, ¤Ï sh ·Ï¤Ç¤Ï͸ú¤Ç¤Ï¤Ê¤¤¤è¤¦¤À¡¥ csh ·Ï¤Ç¤ÏÎ㤨¤Ð ''$argv{m-n}'' ¤Ê¤É¤Ç»ØÄê¤Ç¤¤ë. bash ¤Ê¤É¤Ç¤Ï¡¤°ú¿ô¤ÎÊ£»¨¤Ê½èÍý¤Ï ''getopts'' ¤Ç¹Ô¤¦¤Î¤¬Îɤ¤¤À¤í¤¦¡¥ |
&ref(/materials/warning.png); ''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␣smith''
¼Â¹Ô¤·¤Æ¤ß¤ë¤È¤È¤â¤Ë¡¤²¿¤¬¤É¤¦¤Ê¤Ã¤Æ¤¤¤ë¤Î¤«Íý²ò¤»¤è.
&br;&br;
** I/O: Æþ½ÐÎÏ [#pdf8f3a3]
¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤¬¼Â¹ÔÃæ¤ËÆþ½ÐÎϤò¹Ô¤¦¤Ë¤Ï¡¤¼ç¤Ë¼¡¤Î¥³¥Þ¥ó¥É¤òÍѤ¤¤ë¡¥
: ''read␣ÊÑ¿ô'' |
ÆþÎÏ¡¥
&br;
¥æ¡¼¥¶¤«¤é¤Î(¥¡¼¥Ü¡¼¥É)ÆþÎϤòÂÔ¤Á¡¤¤½¤Î·ë²Ì¤òÊÑ¿ô¤Ë¤¤¤ì¤ë¡¥
: ''echo␣½ÐÎϤ·¤¿¤¤¤â¤Î'' |
½ÐÎÏ
: ''echo␣-n␣½ÐÎϤ·¤¿¤¤¤â¤Î'' |
½ÐÎÏ¡¥¤¿¤À¤·¡¤½ÐÎϸå¤Ë²þ¹Ô¤·¤Ê¤¤¡¥
&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: ·×»» [#f355cb87]
¥ª¥ê¥¸¥Ê¥ë sh ¤Ï·×»»µ¡Ç½¤ò¤Û¤È¤ó¤É»ý¤Ã¤Æ¤¤¤Ê¤¤(bash ¤Ï¼Â¤Ï·×»»µ¡Ç½¤ò»ý¤Ã¤Æ¤¤¤ë)¡¥
&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: ¥·¥§¥ë¤Î´Ø¿ô [#e1cddcc4]
sh ·Ï¥·¥§¥ë¤Ç¤Ï¡¤´Ø¿ô¤òºî¤ì¤Æ¡¤»È¤¨¤ë(Íפ¹¤ë¤Ë¡¤¥³¥Þ¥ó¥É¤ò¤Ò¤È¤Þ¤È¤á¤Ë¤·¤Æ̾Á°¤ò¤Ä¤±¤¿¤â¤Î)¡¥&br;
´Ø¿ô¤òºî¤ë¤Ë¤Ï¡¤
&br;&br;
''´Ø¿ô̾ () {''
&br;
''¥³¥Þ¥ó¥É¡Ä''
&br;
''}''
&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
}}
¤È¤¤¤¦¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤Ï¤É¤¦¤¤¤¦Æ°ºî¤ò¤¹¤ë¤«¡¤¹Í¤¨¡¤¤½¤·¤ÆÆ°¤«¤·¤Æ¤ß¤è¤¦¡¥
&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: ¥·¥§¥ë¤ÎÀ©¸æ¹½Â¤ [#le2acac2]
¡Ö¤â¤·¡Ä¤Ê¤é¤Ð¡×¤È¤«¡¤¡Ö¡Ä¤ò·«¤êÊÖ¤·¤Æ¡Ä¡×¤È¤¤¤¦Æ°ºî¤Ï¼¡¤Î¤è¤¦¤Ë¤¹¤ë¡¥
&br;&br;
*** Conditional branch: ''if'' ¡Ä (ñ½ã)¾ò·ïʬ´ô [#d842d14c]
¾ò·ï¤Ë±þ¤¸¤Æ(Æó¤Ä¤Ë)ʬ´ô¤·¤Æ¤¤¤¯¡¥
¶ñÂÎŪ¤Ê¹½Ê¸¤Ï°Ê²¼¤ÎÄ̤ꡥ
''if␣¾ò·ï1''
&br;
''then␣¥³¥Þ¥ó¥É1 ¡Ä''
&br;
&br;
''elif␣¾ò·ï2''
&br;
''then␣¥³¥Þ¥ó¥É2 ¡Ä''
&br;
''elif␣¾ò·ï3''
&br;
''then␣¥³¥Þ¥ó¥É3 ¡Ä''
&br;
&br;
''(°Ê²¼, elif ¡Ä then ¡Ä ¤ò¹¥¤¤Ê¤À¤±·«¤êÊÖ¤·)''
&br;
&br;
''else␣¥³¥Þ¥ó¥É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 ¤¬¼Â¹Ô & ¥Á¥§¥Ã¥¯¤µ¤ì¡¤
&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'' ¤Î¤¹¤°¸å¤Î ''[␣-e␣$fn␣]'' ¤È¤¤¤¦Éôʬ¤Ë¤Ä¤¤¤Æ¤Ï¸å½Ò¤¹¤ë¤Î¤ÇÍý²ò¤Ï¸å²ó¤·¤Ç¤è¤¤).
#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'' ¡Ä (¥Ñ¥¿¡¼¥ó¥Þ¥Ã¥Á)¾ò·ïʬ´ô [#jda771ee]
¤¢¤ë¡Öʸ»úÎó¡×¤¬ÍÑ°Õ¤·¤¿¥Ñ¥¿¡¼¥ó¤È¥Þ¥Ã¥Á¤¹¤ë¤«¤É¤¦¤«¤Çʬ´ô¤¹¤ë¡¥
ñ½ã¤ÊÎóµó¤Î¾ì¹çʬ¤±¤ËÊØÍø¡¥
¥Ñ¥¿¡¼¥ó¤Ï "¦" ¤Ç¶èÀڤäÆÊÂÎóɽµ(or ¤ò°ÕÌ£¤¹¤ë)¤¹¤ë¤³¤È¤â¤Ç¤¤ë¡¥
¶ñÂÎŪ¤Ê¹½¤Ïʸ°Ê²¼¤ÎÄ̤ꡥ
&br;&br;
''case␣ʸ»úÎó␣in''
&br;
''¥Ñ¥¿¡¼¥ó1)␣¥³¥Þ¥ó¥É1¡Ä ;;''
&br;
''¥Ñ¥¿¡¼¥ó2)␣¥³¥Þ¥ó¥É2¡Ä ;;''
&br;
&br;
''( °Ê²¼, ¥Ñ¥¿¡¼¥ók)␣¥³¥Þ¥ó¥Ék¡Ä;; ¤ò¹¥¤¤Ê¤À¤±·«¤êÊÖ¤· )''
&br;
&br;
''*)␣¥³¥Þ¥ó¥É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'' ¡Ä ¤¢¤Æ¤Ï¤Þ¤ëÊÑ¿ô¤Î·«¤êÊÖ¤· [#fbcd0ac2]
¶ñÂÎŪ¤Ê¹½Ê¸¤ÈÆ°ºî¤Îή¤ì¤Ï°Ê²¼¤ÎÄ̤ꡥ
&br;&br;
''for␣ÊÑ¿ô␣in␣¥Ñ¥¿¡¼¥óor¥ê¥¹¥È''
&br;
''do''
&br;
''¥³¥Þ¥ó¥É¡Ä''
&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'' ¡Ä ¾ò·ï¥Á¥§¥Ã¥¯¤Ä¤¤Ç¤Î·«¤êÊÖ¤·¡¥ [#t0721189]
¶ñÂÎŪ¤Ê¹½Ê¸¤ÈÆ°ºî¤Îή¤ì¤Ï°Ê²¼¤ÎÄ̤ꡥ
&br;&br;
''while␣¾ò·ï''
&br;
''do''
&br;
''¥³¥Þ¥ó¥É¡Ä''
&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'' ¤Î¤¹¤°¸å¤Î ''[␣$x␣-le␣10␣]'' ¤È¤¤¤¦Éôʬ¤Ë¤Ä¤¤¤Æ¤Ï¸å½Ò¤¹¤ë¤Î¤ÇÍý²ò¤Ï¸å²ó¤·¤Ç¤è¤¤).
#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'' ¡Ä¥ë¡¼¥×æ½Ð¡¥ [#xb06463f]
¤³¤Î¥³¥Þ¥ó¥É¤¬¼Â¹Ô¤µ¤ì¤ë¤È¡¤for¡¤while, until ¤Î¥ë¡¼¥×¤«¤éæ½Ð¤¹¤ë¡¥
&br;&br;
*** Termination: ''exit'' ¡Ä ½ªÎ»¡¥ [#b620cb34]
¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤Î½ªÎ»¡¥
&br;&br;
** Conditional statement: ¾ò·ï¼°¤ª¤è¤Ó¾ò·ï¼°¤Î¥Á¥§¥Ã¥¯ [#condition-expression]
sh ·Ï¥·¥§¥ë¤Ç¤Ï¡¤¾ò·ï¤Ï´ðËÜŪ¤Ë
> ''[␣¾ò·ï¼°␣]''
¤È¤¤¤¦·Á¼°¤Ç½ñ¤«¤ì¤ë¡¥
&br;
&br;
&ref(/materials/warning.png); ''['' ¤È¾ò·ï¼°¤Î´Ö¤Ë¤Ï¥¹¥Ú¡¼¥¹␣¤¬É¬Íסª
&br;
# ¾Ü¤·¤¯¸À¤¦¤È¡¤[ ¤Ï¾ò·ï¼°¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡¤¤È¤¤¤¦µ¡Ç½¤ò»ý¤Ä¥³¥Þ¥ó¥É¤Ç¤¢¤ë¡¥
// ËÜÍè¤Î̾Á°¤Ï ''test'' ¤Ç¤¢¤ë¡¥
// ¤É¤¦¤Ê¤Ã¤Æ¤¤¤ë¤Î¤«¤Ï¡¤
// ''ls -lg `which [`'' ¤Ê¤É¤È¤·¤Æ¤ß¤ë¤Èʬ¤«¤ë¤À¤í¤¦¡¥
&br;
&br;
¾ò·ï¼°¤Ï¡¤´ðËÜŪ¤Ë¡Öñ¹à±é»»»Ò¡×¤«¡ÖÆó¹à±é»»»Ò¡×¤È¹àÌܤÎÁȤ߹ç¤ï¤»¡¥
*** statement for files: ¥Õ¥¡¥¤¥ë¤Ë´Ø¤¹¤ë¾ò·ï¼° [#ic1ad30c]
: -e␣̾Á° | ¤½¤Î̾Á°¤Î¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¤Ê¤é¤Ð¿¿¡¥
: -d␣̾Á° | ¤½¤Î̾Á°¤Î¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤¹¤ë¤Ê¤é¤Ð¿¿¡¥
: -f␣̾Á° | ¤½¤Î̾Á°¤ÎÄ̾ï¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¤Ê¤é¤Ð¿¿¡¥
: -r␣̾Á° | ¤½¤Î̾Á°¤ÎÆɤ߹þ¤ß²Äǽ¤Ê¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¤Ê¤é¤Ð¿¿¡¥
: -w␣̾Á° | ¤½¤Î̾Á°¤Î½ñ¤¹þ¤ß²Äǽ¤Ê¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¤Ê¤é¤Ð¿¿¡¥
: -x␣̾Á° | ¤½¤Î̾Á°¤Î¼Â¹Ô²Äǽ¤Ê¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¤Ê¤é¤Ð¿¿¡¥
: -s␣̾Á° | ¤½¤Î̾Á°¤Î¥µ¥¤¥º¤¬ 0 ¤è¤êÂ礤ʥե¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¤Ê¤é¤Ð¿¿¡¥
&ref(/materials/notes.png); ¼Â½¬
À©¸æ¹½Â¤ if ¤Î¤È¤³¤í¤Î¼Â½¬Îã¤Ê¤É¤ò»²¹Í¤Ë¤·¤Æ¡¤¾å¤Î¾ò·ï¤ò¤Ê¤ë¤Ù¤¯Á´Éô»î¤¹¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤Æ¤ß¤è.
*** statement for string: ʸ»úÎó¤Ë´Ø¤¹¤ë¾ò·ï¼° [#ddbdac55]
: -z␣ʸ»úÎó | ʸ»úÎó¤ÎŤµ¤¬¥¼¥í¤Ê¤é¤Ð¿¿¡¥
: -n␣ʸ»úÎó | ʸ»úÎó¤ÎŤµ¤¬¥¼¥í¤Ç¤Ê¤±¤ì¤Ð¿¿¡¥
: ʸ»úÎó1␣==␣ʸ»úÎó2 | ʸ»úÎó¤¬Åù¤·¤±¤ì¤Ð¿¿(¸«¤¨¤Ë¤¯¤¤¤¬¡¤¡Ö=¡×¤¬Æó¤Ä¤Ä¤Ê¤¬¤Ã¤Æ¤¤¤ë)¡¥
: ʸ»úÎó1␣!=␣ʸ»úÎó2 | ʸ»úÎ󤬰ۤʤì¤Ð¿¿¡¥
&ref(/materials/notes.png); ¼Â½¬
À©¸æ¹½Â¤ if ¤Î¤È¤³¤í¤Î¼Â½¬Îã¤Ê¤É¤ò»²¹Í¤Ë¤·¤Æ¡¤¾å¤Î¾ò·ï¤ò¤Ê¤ë¤Ù¤¯Á´Éô»î¤¹¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤Æ¤ß¤è.
*** statement for number: ¿ôÃͤ˴ؤ¹¤ë¾ò·ï¼° [#q1bdf387]
: ¿ôÃÍ1␣-eq␣¿ôÃÍ2 | ¿ôÃͤ¬Åù¤·¤±¤ì¤Ð¿¿¡¥
: ¿ôÃÍ1␣-ne␣¿ôÃÍ2 | ¿ôÃͤ¬°Û¤Ê¤ì¤Ð¿¿¡¥
: ¿ôÃÍ1␣-gt␣¿ôÃÍ2 | ¿ôÃÍ1 > ¿ôÃÍ2 ¤Ê¤é¤Ð¿¿¡¥
: ¿ôÃÍ1␣-ge␣¿ôÃÍ2 | ¿ôÃÍ1 ¡æ ¿ôÃÍ2 ¤Ê¤é¤Ð¿¿¡¥
: ¿ôÃÍ1␣-lt␣¿ôÃÍ2 | ¿ôÃÍ1 < ¿ôÃÍ2 ¤Ê¤é¤Ð¿¿¡¥
: ¿ôÃÍ1␣-le␣¿ôÃÍ2 | ¿ôÃÍ1 ¡å ¿ôÃÍ2 ¤Ê¤é¤Ð¿¿¡¥
&ref(/materials/warning.png); ¾ò·ï¼°¤ÎȽÄê¤Ë¤ÏÀ°¿ô¤·¤«»È¤¨¤Ê¤¤¤¾¡ª
&ref(/materials/notes.png); ¼Â½¬
À©¸æ¹½Â¤ if ¤Î¤È¤³¤í¤Î¼Â½¬Îã¤Ê¤É¤ò»²¹Í¤Ë¤·¤Æ¡¤¾å¤Î¾ò·ï¤ò¤Ê¤ë¤Ù¤¯Á´Éô»î¤¹¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤Æ¤ß¤è.
*** other statement: ¤½¤Î¾ ¾ò·ï¼° [#lc23ddbe]
: !¾ò·ï¼° | ''NOT''¤òɽ¤¹.
¾ò·ï¼°¤¬À®¤êΩ¤¿¤Ê¤±¤ì¤Ð¿¿¡¥
: ¾ò·ï¼°1␣-a␣¾ò·ï¼°2 | ''AND''¤òɽ¤¹.
ξÊý¤Î¾ò·ï¼°¤¬À®¤êΩ¤Æ¤Ð¿¿¡¥
: ¾ò·ï¼°1␣-o␣¾ò·ï¼°2 | ''OR''¤òɽ¤¹.
¤É¤Á¤é¤«¤Î¾ò·ï¼°¤¬À®¤êΩ¤Æ¤Ð¿¿¡¥
: ( ¾ò·ï¼° ) | ¾ò·ï¼°¤ò¥°¥ë¡¼¥×²½¤¹¤ë¡¥
Ê£»¨¤Ê¾ò·ï¼°¤ò½ñ¤¯¤È¤¤Ë¤Ï¡¤
°Õ¿Þ¤È°Û¤Ê¤ë·ë²Ì¤Ë¤Ê¤é¤Ê¤¤¤¿¤á¤Ë¤âÀѶËŪ¤Ë»È¤¦¤Ù¤·¡¥
&ref(/materials/notes.png); ¼Â½¬
À©¸æ¹½Â¤ if ¤Î¤È¤³¤í¤Î¼Â½¬Îã¤Ê¤É¤ò»²¹Í¤Ë¤·¤Æ¡¤¾å¤Î¾ò·ï¤ò¤Ê¤ë¤Ù¤¯Á´Éô»î¤¹¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤Æ¤ß¤è.
&br;&br;
* Report: ¥ì¥Ý¡¼¥È [#h9a0add5]
°Ê²¼¤Î²ÝÂê¤Ë¤Ä¤¤¤Æǽ¤¦¸Â¤ê¸ÌÀ¤ÊÄ´ºº¤È¹Í»¡¤ò¹Ô¤¤¡¤
&br;
''AppliedMath7-Report-07''
&br;
¤È¤¤¤¦Âê̾¤ò¤Ä¤±¤Æ e-mail ¤Ë¤Æ¶µ´±°¸¤Ë¥ì¥Ý¡¼¥È¤È¤·¤ÆÄó½Ð¤»¤è. ¤Ê¤ª¡¤¥ì¥Ý¡¼¥È¤ò e-mail ¤ÎÂå¤ï¤ê¤Ë TeX ¤ÇºîÀ®¤·¤¿½ñÌ̤ˤÆÄó½Ð¤·¤Æ¤â¤è¤¤.
** Exercises: ²ÝÂê [#n6a5a788]
+ °ú¿ô1 ¤Ë¡Ö¶â³Û¡×¤ò¡¤°ú¿ô2 ¤Ë¡ÖÆü¿ô¡×¤òÆþ¤ì¤ë¤È¡¤
¤½¤Î¶â³Û¤Ç¤½¤ÎÆü¿ô¤À¤±¤ª¶â¤ò¼Ú¤ê¤¿¤éºÇ½ªÅª¤Ë¤¤¤¯¤é¤Ë¤Ê¤ë¤«¤ò·×»»¤¹¤ë¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤òºîÀ®¤»¤è¡¥
¤¿¤À¤·¡¤¶âÍø¤Ï 10Æü¤Ç 1³ä (Ê£Íø)¤È¤¹¤ë¡¥
&br;
&ref(/materials/warning.png);
¤¿¤À¤·¡¤
read ¥³¥Þ¥ó¥É¤Ê¤É¤ò»È¤ï¤º¡¤¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤Î°ú¿ô¤ò¤¤Á¤ó¤È½èÍý¤¹¤ë¤³¤È¡¥
&br;
&br;
+ ¥Õ¥¡¥¤¥ë¤ò¾Ãµî¤¹¤ë¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤òºîÀ®¤»¤è¡¥
¤¿¤À¤·¡¤¼¡¤Îµ¡Ç½¤ò»ý¤Ã¤Æ¤¤¤ë¤è¤¦¤Ë¤»¤è¡¥
++ ¥Õ¥¡¥¤¥ë¤Î¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¤«¤É¤¦¤«Ä´¤Ù¤Æ¡¤
--- ̵¤¤ ¡Ä ºîÀ®¤¹¤ë¡¥
--- ¤½¤Î¿ô¤¬3¤Ä°Ê²¼ ¡Ä ¿·¤¿¤Ë¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¡¥
--- ¤½¤Î¿ô¤¬3¤Ä¤è¤ê¿¤¤ ¡Ä °ìÈָŤ¤¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ë¤ò¾Ãµî¤·¤Æ¤«¤é¡¤
¿·¤¿¤Ë¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¡¥
++ °Ê¾å¤Îºî¶È¤ò¹Ô¤Ã¤Æ¤«¤é¡¤¥Õ¥¡¥¤¥ë¤ò¾Ãµî¤¹¤ë¡¥
&br;
&br;
+ ¤³¤ì¤Þ¤Ç¤Î¼ø¶È²ÝÂê¤Ç¡¤¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤òÍøÍѤ·¤Æ²ò·è¤Ç¤¤ë²ÝÂ꤬¤¢¤ì¤Ð¤½¤ì¤ò¹Ô¤¨¡¥
&br;&br;
* about Icons, ClipArts [#vf273194]
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){{}}
// ¥Ñ¥¤¥×
// ¦
// ¶õÇòµ¹æ
// ␣