- ベストアンサー
Cシェルの制御文について(求むCシェル・マスター)
Cシェルでとある処理をすることになり、参考資料としてスペシャリストな人の シェルをみせてもらったのですが、ソースを読むこともままなりません(><) 私自身はVisualStudioを使ってCのプログラミングをかなり前にちょろっとやった程度で、 シェルというものをほとんど組んだことがないので、以下の点を教えてください。 if [ほにゃらら] then コマンドをぽちっとな elif [はにゃらら] then コマンド2をぽちっとな else exit fi 上記のような制御文を参考資料の中で多数みるのですが、 "elif"と"fi"が、まったく何者かわかりません。 Cシェルやelifなどで、ぐぐってみましたが、わからず 誰か助けてぇ~って感じです。 また、シェルの勉強サイト(C,Tc,B,Bash)のサイトも ありましたら教えてください。すんませんが、よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
if [ほにゃらら] もし [ほにゃらら] なら then コマンドをぽちっとな elif [はにゃらら] [ほにゃらら]でない時 [はにゃらら]なら then コマンド2をぽちっとな else [ほにゃらら]でも[はにゃらら]でも無い時 exit fi if文の終わりを意味します(ifとついになります) これで解りますか?
その他の回答 (3)
- xjd
- ベストアンサー率63% (1021/1612)
if [ほにゃらら] then コマンドをぽちっとな elif [はにゃらら] then コマンド2をぽちっとな else exit fi この形式はB系シェルの文法ですね。 if [ 条件1 ]; then 処理1 elif [ 条件2 ]; then 処理2 else 処理3 fi シェルの種類はだいたい以下の感じです。 sh (Bourneシェル) 最も基本的なシェル bash (Bourne Againシェル) shの高機能版 Linuxで標準 ksh (kornシェル) 米国AT&Tで開発された高機能シェル csh (Cシェル) 構文がC言語に似ているシェル Solarisで標準 tcsh (TCシェル) cshの高機能版 FreeBSD、MacOSXで標準 zsh (Zシェル) B系シェル(ksh)とC系シェル(tcsh)の両方を備えた高機能シェル apneaさんはどのOSでどのシェルを使う予定なのですか?
お礼
ご回答ありがとうございます。 この中で知っている(シェルとして見たことがある)のはbash,cshくらいですねぇ。 shは環境変数をセットするときにちろっと使うくらいで、 ごりごりと書いたことも、うりうりと書いてあるのを見たこともなかったもので・・・(笑)
補足
UX4800とかいうSystemV系(?)のOSです 私にはディープかつマニアックなOSに見えてしまってます。 つい最近まで、そんなもん名前も聞いたことなかった(⌒-⌒;
- ranx
- ベストアンサー率24% (357/1463)
とりあえず、回答は他の方々の通りですが、 Cシェルではないと思いますよ。 Cシェルだったら if (ほにゃらら) then コマンドをぽちっとな else if (はにゃらら) then コマンド2をぽちっとな else exit endif みたいな感じですからね。
お礼
参考資料のシェルを見直して自爆していたことに気づきました。 #! /sbin/sh となっていました(^-^; すんませんです。ちゃんと見てなかったようです (先週の私の目には/sbin/cshと見えていた気が・・・)
- ribisi
- ベストアンサー率28% (247/864)
elifは、いわゆる else if、 fiは、いわゆる end ifの意味です。 初めてfiを見たときには笑ってしまいました。 なんでも、単純にifを逆さにしただけだとか。 Linuxサーバーの~/bashrcとかにちょこっと 処理を加えたいことがあって、参考書を読んだことがあります。 ソフトバンクの『入門UNIXシェルプログラミング』 という本ですが、わかりやすかったです。
お礼
回答ありがとうございます。 教えていただいた本も探して読んでみようと思います。
お礼
大変わかりやすいです(^-^) 一文一文解説ありがとうございます。