#!/bin/csh # 2.1 入力を返すコマンド oomu echo "名前をいれてください。" set name = $< echo " $name は えらい! 本当に偉い!"
% 2e oomu % ./2e oomu -rwxr-xr-x 1 rsaito bin 138 Jul 3 22:43 oomu* 名前をいれてください。 Watasi Watasi は えらい! 本当に偉い!日本語を kterm からいれたい場合には、mule から マウスで copy するのが簡単です。kinput2 という日本語入力コマンドもあります。 (使いかたはここでは説明しません。)
#!/bin/csh # 2.2 yes/no を聞くコマンド yesno echo " これで良いですか(y/n) ?" set yes = $< # if ( "$yes" == "y" || "$yes" == "Y" ) then echo " y を押しましたね。" else echo " y 以外を押しました。" endif #
% yesno これで良いですか(y/n) ? Y y を押しましたね。
if 文の詳細はあとの章で行います。言葉の比較は" == "で行いま す。== の前後にはスペースが必要です。試してみてください。
正: if ( "$yes" == "y" ) then 誤: if ( "$yes"=="y" ) then @ @ スペースがない!このような過ちはエラーとして見つけにくいです。スペースがない と、if: Expression Syntax. という エラーがでます。 似たような過ちに = が 1 個しかないというのもあります。 うまくいかないときに憔悴しますがおちついて、エラーを 探してください。
" || " は "または or" を示します。ちなみに " かつ and " は && です。
単に確認をするための時には "n" だけ if で探します。こうすれば ただ改行をすれば yes と扱うことができます。その場合の表示は ([y]/n) と書きます。これは ただ改行をした場合には、y として 扱うという意味です。n だけが意味を持つという意味です。
#!/bin/csh # 2.3 メニュー形式の入力 menu clear echo " ○○ 簡単起動 メニューへようこそ ○○" # cat << eof n: netscape を起動する。 r: mule を開き e-mail を読む。 s: mule を開き e-mail を送る。 eof # echo "上から 選んでください (n/r/s)" set ans = $< # switch($ans) case n: echo "ネットスケープを開きます。しばらくお待ちください" netscape & breaksw case r: echo "e-mail を読みます。mule を開きます。" mule -f mh-rmail & breaksw case s: echo "e-mail を送ります。mule を開きます。" mule -f mh-smail & breaksw default: echo "コマンドがリストにありません。" endsw
ここでは実行例を示しませんが、いろいろ試してみて switch 文や menu の仕組みを学んでください。また menu の表示がどのように したら分かりやすいか、標準的な書き方を学んでみてください。 メッセージはあまり多いのも感心しませんが、csh の最初の練習で は沢山いれるのが良いでしょう。そうすれば少なくてもどこまで動 いているか簡単に判別することができます。