■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■             燃えるUNIX道〜UNIXバカ一代                                  Vol:020                          発行日: 1999年12月08日                        総発行部数:     3045部                           (1999年12月07日現在) ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆PR◆-------------------------------------------------------------------- ●お肉の「いづつ屋」  インターネット販売だけの100名様限定商品を発売!?  おいしいお肉は、やっぱり「いづつ屋」だね。  http://www.tanba-izutsuya.com/ --------------------------------------------------------------------◆PR◆ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆目次◆ ●Web新撰組ニュース ●本文:shellで遊ぼう(その3) ●予告 ●おまけニュース ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆PR◆-------------------------------------------------------------------- ドコモ群馬支店が提供するメール配信サービス「Do−inG!!」 お得な情報やおもしろ情報を無料でお届けします。詳細は↓↓↓↓ click< http://a.clickincome.net/md/dk?mid=4e53120487f43c38588d7b46389812d9 > --------------------------------------------------------------------◆PR◆ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ⇔⇔Web新撰組News⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔  メールを使った新しい遊びを追及する「メールで遊ぼう!」会員数2000名突破!  http://www.web-kyoto.com/vmail/  いますぐ会員登録だ!  Web新撰組メンバー執筆のCGI参考書。  「Perlで作る楽しいCGI」は、エーアイ出版のエーアイムックNo.237。  内容についての御質問は、新撰組ML(http://www.web-kyoto.com/ml/)へ。 ⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔ ●shellで遊ぼう(その3)   前回のスクリプトに大きな間違いがありました。ごめんなさいm(_ _)m。   (メールでお問い合わせ下さった方に・・・どうもありがとうございました)   正しいsample4 ------------------------------------ #!/bin/sh if [ $# -ne 3 ] then echo "usage: sample4 n1 [+-x/] n2" exit fi if [ $2 = '+' ] then KOTAE=`expr $1 + $3` elif [ $2 = '-' ] then KOTAE=`expr $1 - $3` elif [ $2 = 'x' ] then KOTAE=`expr $1 \* $3` elif [ $2 = '/' ] then KOTAE=`expr $1 / $3` else echo "usage: sample4 n1 [+-x/] n2" exit fi echo "Kotae ha $KOTAE" ------------------------------------   $2 -eq '+'とか書いてましたが、文字列の比較には-eqではなく、=を使います。 (最後の方に自分でそう書いておきながら、間違ってました・・・かっちょわるい)   -neは、イコールではない、という意味の比較演算子です。   数字を比較する為の比較演算子には、下記のようなものがあります $a -eq $b $aと$bは等しい $a -ne $b $aと$bは等しくない $a -gt $b $aは$bより大きい $a -ge $b $aは$bより大きいか等しい $a -lt $b $aは$bより小さい $a -le $b $aは$bより小さいか等しい   文字を比較するものには、下記のようなものがあります。 $a = $b $aと$bは等しい $a != $b $aと$bは等しくない   って事でしたね。   あと、exit;ってなってた所も、;は不要です。   では、、、   今回も引き続きshellスクリプトで遊んでみましょう ◇while文   sample4は、 $ ./sample4 2 x 3 (R)   とすると、2 x 3の答えを出してくれるものでした。   これを連続して何回も計算出来るようにしてみましょう。   sample5 ------------------------------------ #!/bin/sh while true do echo -e "input: \c" read numa exp numb if [ -z "$exp" -a $numa -eq 99 ] then break fi if [ $exp = '+' ] then KOTAE=`expr $numa + $numb` elif [ $exp = '-' ] then KOTAE=`expr $numa - $numb` elif [ $exp = 'x' ] then KOTAE=`expr $numa \* $numb` elif [ $exp = '/' ] then KOTAE=`expr $numa / $numb` else echo "usage: sample4 n1 [+-x/] n2" fi echo "Kotae ha $KOTAE" done exit ------------------------------------ $ ./sample5 (R)   とすると、 input:   と表示されますので、2 x 3とか入力して下さい。するとその答えが表示され、 また、 input:   と次の式を聞いてきます。99とだけ入力すれば終了です。   while文の書式は、 while 条件 do ・ ・ ・ ・ done   です。条件が真である間、・・・・の文を処理します。   例えば、 i=0 while [ $i -lt 5 ] do i=`expr $i - 1` echo $i done   は、$iが5よりも小さい間、$iに1を足し、それを表示します。よって、 1 2 3 4 5   と表示されます。   sample5のように while true   とすれば、ずっと真のままなので無限ループになります。   ループを抜けるには、breakを使います。 if [ -z "$exp" -a $numa -eq 99 ] then break fi   -z "$exp"は、変数$expがNULLである場合、という意味です。   (NULLではない場合、は、-n "$exp"と書きます)   -aは、「しかも(AND)」で、$numa -eq 99は、最初の数字が99であった場合と いう意味です。   つまり、99とだけ入力すればこのループを終了します。   行が前後しますが、、、 read numa exp numb   は、標準入力(つまりキーボード)から入力された文を、スペース区切りで、 $numa $exp $numbに順に格納します。入力されたデータがこの変数の個数より多い 場合は、残り全部が$numbに入ります。 ◇おまけ(andとor)   -aはandでした、orは-oと書きます。 if [ $a -eq 10 -o $b -eq 10 ]   てな具合です。   本日はここまで。。。 ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆予告◆------------------------------------------------------------------ ●次回は、case文です。 ------------------------------------------------------------------◆予告◆ --------------------------------------------------------------------◆PR◆ テクニカル分析の最高峰・柴田罫線で、買い時、売り時を見極める。  高的中率に定評ある「柴田罫線」ソフト+パソコンをプレゼント! click< http://a.clickincome.net/md/dk?mid=e4100b60c552ab0a4f264d44bca24c32 > --------------------------------------------------------------------◆PR◆ ◆おまけニュース◆-------------------------------------------------------- ●年末年始のお休みのお知らせ  鬼が笑ってるかも知れませんが・・・  12月29日(水)と来年の1月5日(水)の燃えるUNIX道はお休みします。   --------------------------------------------------------◆おまけニュース◆ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ このメールマガジンは、 Subject部が、燃えるUNIX道〜UNIXバカ一代【Vol.番号】は、まぐまぐ様にて、 ( http://www.mag2.com/ ) Subject部が、燃えるUNIX道〜UNIXバカ一代 Vol.【番号】は、Macky様にて、 ( http://macky.nifty.ne.jp/ ) Subject部が、燃えるUNIX道〜UNIXバカ一代番号 は、Pubzine様にて、 配布致しています。 メールマガジンの解除について まぐまぐ様の解除は、 http://www.web-kyoto.com/dp/unix/ に、削除及び登録フォームを用意致しております。 Macky様の解除は、 http://macky.nifty.ne.jp/ を参考して下さい。 Pubzine様の解除は、 http://www.pubzine.com/srchid.asp?keyword=1513 に、削除及び登録フォームを用意致しております。 ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆お願い◆ このマガジンについてのお問い合わせは、WEB新撰組メーリングリストで、 お願い致します。 参加方法は、 http://www.web-kyoto.com/ml/ を参考にして下さい。 内容に対する御意見・御質問、誤記訂正はこのメールのリプライにて お願いいたします。 ◆担当者◆ 本文文責    :Web新撰組プログラマー萩原逸郎 Web新撰組  :http://www.web-kyoto.com/ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■