■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■             燃えるUNIX道〜UNIXバカ一代                                  Vol:016                          発行日: 1999年11月10日                        総発行部数:     2811部                           (1999年11月09日現在) ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆PR◆-------------------------------------------------------------------- ●お肉の「いづつ屋」  インターネット販売だけの100名様限定商品を発売!?  おいしいお肉は、やっぱり「いづつ屋」だね。  http://www.tanba-izutsuya.com/ --------------------------------------------------------------------◆PR◆ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆目次◆ ●Web新撰組ニュース ●本文:shellで遊ぼう(その2) ●予告 ●おまけニュース[出会いの掲示板] ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆PR◆-------------------------------------------------------------------- ◆◆◆◆◆研究・開発担当様 必見!◆◆◆卓上型かく拌・脱泡器誕生!◆◆◆◆◆ エポキシ、銀ペースト、ウレタン等を1分でかく拌・脱泡。真空装置は不要です! click< http://a.clickincome.net/md/dk?mid=35fde8dc5d3a0dd0e4777ba15a961a78 > --------------------------------------------------------------------◆PR◆ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ⇔⇔Web新撰組News⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔  メールを使った新しい遊びを追及する「メールで遊ぼう!」会員数2000名突破!  http://www.web-kyoto.com/vmail/  いますぐ会員登録だ!  Web新撰組メンバー執筆のCGI参考書。  「Perlで作る楽しいCGI」は、エーアイ出版のエーアイムックNo.237。  内容についての御質問は、新撰組ML(http://www.web-kyoto.com/ml/)へ。 ⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔ ●shellで遊ぼう(その2)   今回はshellスクリプトで遊んでみましょう ◇先ずは簡単なものから   shellとひとくちに云っても、bsh、ksh、csh、posixsh等色々あります。   ここでは、一番基本的だと思われるbshについてお話しします。   /etc/rc(/etc/rc.dかも知れない)ディレクトリの中にあるスクリプトは、bsh 用に書かれているのが一般的です(HP-UX8.xまでは、確かrcは1つのファイルだった ような気がします。最近はプログラムごとに別れています)。   sample1 ------------------------------------ #!/bin/sh cut -d":" -f1,6 /etc/passwd ------------------------------------ $ chmod 755 sample1 (R)   で実行権を与え、 $ ./sample1 (R)   とすれば、 root:/ hagi:/home/hagi . . .   と表示されます。   #!/bin/shは、このshellスクリプトを動かすshellへのパスです。Perlスクリ プトで、#!/usr/local/bin/perlって書いたりするのと同じです。   cutは文をちょんぎります。   cut -d':' -f1,6は、区切り文字を:にして、1つめと6つめのフィールドを取り 出すという意味です。   他にも、文字の位置を指定して、cut -c20-40 なんて使い方もあります。この 場合だと20文字目から40文字目までを取り出すという意味になります。ただし、こ の数字は半角での文字位置になりますので全角文字が混ざっている場合は、文字化 けするかも知れません。   /etc/passwdはユーザーのパスワード等が書かれているファイルです。 hagi:*:1001:1001:Itsuro Hagihara:/home/hagi:/bin/sh   てな書式になっています。   前から順に、ユーザー名、パスワード、UID、GID、名前等の備考欄(オプショ ン)、ホームディレクトリ名、ログイン時に起動するプログラム名(普通はshell※)。   cut -d':' -f1,6は、この1番目と6番目を切り出してくれます。 ※注釈:::  普通は、ログインシェルを書きます。  他に、、、シャットダウン用のスクリプトを書いておいて、stop等という名前の ユーザーを作り、この部分にそのスクリプトを指定して置くと、ログインすると システムがシャットダウンするように出来ます。  いちいちrootでログインしてshutdownなんてやらなくてもいいので便利です。   このように、shellスクリプトと云っても、コマンドを書けばよいだけです。   簡単簡単。。。 ◇足し算をしてみましょ   sample2 ------------------------------------ #!/bin/sh echo "Kotae ha \c" echo `expr $1 + $2` ------------------------------------   パーミッションを設定した後、 $ ./sample 2 3 (R)   とすると Kotae ha 5   と表示されます。   echoは、それに続く文を画面に表示します。この場合、Kotae ha \cを表示し ます。\cは改行しないという特殊記号です。echoは最後に改行を行いますのでこの 記号を入れておきます(shellによっては、echo -eとしないと\cをそのまま表示さ れる場合があります)。   expr $1 + $2は、引数の1つめと2つめを足します。   shellスクリプトへの引数は$に数字をつけたものになります。引数の区切り記 号はスペースになります。よって./sample2 2 3としたわけです。   ($0は、shellスクリプトの名前になります。)   スペースを含む文を引数に使いたい場合は、引数を" "で囲みます。   算術演算を行うにはexpr 計算式、とします。   ここで、echo expr $1 + $2とすると、 Kotae ha expr 2 + 3   となってしまいます。echoは、ただ単にその後の文字を表示するだけなので、 足し算をしてくれません。expr $1 + $2を` `で囲むと最初にexpr $1 + $2を実行 し、その結果を表示してくれます。` `はその中のコマンドを実行せよというマーク です。 ◇変数を使ってみよう。   sample3 ------------------------------------ #!/bin/sh KOTAE=`expr $1 + $2` echo "Kotae ha $KOTAE" ------------------------------------ $ ./sample3 2 3 (R)   で、 Kotae ha 5   と表示されます。動作はsample2と全く同じです。   KOTAE=`expr $1 + $2`は、`expr $1 + $2`の結果を変数KOTAEに代入します。   echo $KOTAEとすれば、KOTAE変数の中身を表示出来ます。   このように値を代入する場合は、KOTAEと書き、値を参照する場合は$KORAEと $記号をつけて書きます。   また代入時は、変数名=値、と書き、変数名 = 値、のようにスペースを入れて はいけません。スペースを入れた場合、変数名がコマンドと解釈されてしまい、エ ラーになってしまいます。   本日はここまで。。。 ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆予告◆------------------------------------------------------------------ ●次回は、if文なんぞを使って四則演算が出来るようにしましょう。 ------------------------------------------------------------------◆予告◆ --------------------------------------------------------------------◆PR◆ ■ 機能多彩&高速レンタルサーバー ■ 50MB+6POPで3,400円/月より。ドメイン登録は今すぐ! click< http://a.clickincome.net/md/dk?mid=8dc3438c53d606350e58104c33cef187 > --------------------------------------------------------------------◆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/ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■