Tera Term proを使ってるんですが、
shell scriptで、
ifとcaseはどのように違うんでしょうか?
教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

sh系のコマンドだと思って回答します。



if は、それに続くコマンドを実行し、結果が0かどうかで分岐します。
case は、文字列のパターンマッチをします。

ん、No.1 の回答と変わらないですね (^^;

例えば、あるファイルに文字列 XXX があれば、EXIST と表示するスクリプト。

if grep XXX filename
then
 echo XXX
fi

一文字入力して、Y/N で処理を分けるようなスクリプト。小文字でもOKにしてます。

read x
case $x in
 y|Y) echo Yes;;
 n|N) echo No;;
 *) echo Else;;
esac
    • good
    • 0
この回答へのお礼

どうもありがとうございました。

お礼日時:2002/01/12 02:06

何のOS,shellを使用されているかわかりませんが、


ifは選択
caseは分岐
となります。
たとえば
xという変数の中が0と1しか有り得ない場合はif
xという変数の中身が0~5まで有り得る場合はcase
というふうに使い分けます。
    • good
    • 0
この回答へのお礼

どうもありがとうございました。

お礼日時:2002/01/12 02:06

sh のことですね。



if は、与えたコマンドを実行させ、それが真か偽か(成功か失敗か)で条件分岐します。

case は、与えた文字列が、選択肢のどれにマッチするかを調べ、マッチした箇所に条件分岐します。

if で、[ ] などを使って、文字列の一致を調べるじゃないかという見方もできますが、実際には、[ ] は test という外部コマンドの別名であり、そのコマンドが文字列の一致を調べて成功したり失敗したりする機能をもっているだけです。
    • good
    • 0
この回答へのお礼

どうもありがとうございました。

お礼日時:2002/01/12 02:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QTera Termマクロでファイル送信

お世話になっています。
windowsマシンからUNIXマシンへファイルを送信したいのです。FFFTP等を用いれば簡単に送信できることは存じていますが、起動するだけで、目的のファイルを自動送信してくれるTera Termマクロを作りたいと思っています。
しかし、私はTera Termマクロに関して素人のためいまいち見当がつきません。そこでご存知の方がいましたら、マクロの組み方を教えていただけないでしょうか?

条件は以下のようになっています。
送りたいファイル・・C:\Temp\aaa.txt
UNIXマシン・・192.168.X.X(できればマクロに引数として与えたい)
送り先ディレクトリ・・/work

Aベストアンサー

始めまして。

windowsのFTPコマンドで簡単に同じ事が実現できます。
※自分が確認しているのはWin2000です。

用意するもの:FTPのバッチ,FTPのシナリオファイル

○FTPのバッチ:
ftp -s:FTP.txt 192.168.XXX.XXX
上記コマンドをテキストファイルで*.batで保存する

○FTPのシナリオファイル:
ユーザ名
パスワード

cd /work    UNIX上でのディレクトリ移動
lcd c:\temp  WIN上でのディレクトリ移動
put aaa.txt  ※文字化けがある場合は、このコマンドの前にbinまたはasciiでモードを変えてください。
bye
上記シナリオをFTP.txtで保存する

詳しくはWindowsのFTPコマンドを参照ください。

実行する時、上記作成の2ファイルを同じディレクトリに置いて実行してください。

QFedoraでtera term SSHからのアクセスによる日本語文字化け

FedoraCore1.0のサーバを立ち上げ、tera term SSHからアクセスして色々いじろうとすると、日本語の表示がすべて化けてしまいます。
「setup」→「terminal」から、文字コードの設定を色々いじってみても、解消されません。

何か原因などご存知の方がおられましたら、教えてください!!

Aベストアンサー

fedra core 1の日本語Localeがeuc-jpからUTF-8に変更されたために起きる問題です。

/etc/sysconfing/i18n
のLANGの指定を
LANG="ja_JP.euc_jp"
に置き換えればとりあえず回避できます。
↓も参照

参考URL:http://robotics.aist-nara.ac.jp/~tsuyo-s/linux/linux.html#character_code_euc

Qwin2000proからxp proへ

よろしくおねがいします。現在win2000proの入ったPCを使用していますが、XP proのリカバリCD?をもらいました。(友人の新たに買ったPCについてたものです。友人はXPが嫌みたいで2000にもどしてました。)僕はXPにしたかったのでそれを用いてインストールしようとしましたが、アップグレードはできませんでした。(あたりまえ?)それで、質問ですが現在win2000で、いろんなアプリケーションやお気に入りがありますが、XPを新たにインストールするとなるとそれらは消されてしまいますよね?それで、osをXPにして今まで使っていたアプリケーションやソフトやお気に入りをそのまま使う(残す)ことは可能でしょうか?やはり、XPを入れた後、始めからいろいろ入れていく必要がありますか?どうか教えてください。

Aベストアンサー

OS入れ替えならクリーンインストールして、アプリも入れなおしたほうがいいですよ。
お気に入りのバックアップなんて大した容量じゃないです。
(1000件とかないですよね?)
例えば、HDDの交換を考えているのなら、そのタイミングでやれば、2度手間になりませんよ。

Qlinux で term するには?

モニタの無い Sun E6500 の okプロンプトを見るために
クロスの232cケーブルでつなげて
Windows から HyperTerminal を使ったり
Windows から TeraTerm を使ったり
Solaris から tip を使ったり
してます。こちらは問題ないのですが、
さて、linux から同じことをするためには
なんというコマンドorアプリケーションを使えばいいのでしょうか?
すみません教えてください。

Aベストアンサー

私はminicomとかを設定するのが面倒なのでcuコマンドを使っています。
cuはuucpパッケージに含まれるコマンドなので、最近どのLinuxディストリビューションでもデフォルトインストールされないどころか、インストールCDにも同胞されていない場合が多いです。
ですので、私は古いCDやWeb検索してuucpパッケージを拾ってきて入れて使っています。

QウインドウズXP PROの SP1とSP1aの違いってどうちがうんですか!?

ウインドウズXP PROのSP1とSP1aってどうちがうんですか!?

Aベストアンサー

こんにちは

Microsoft JavaVMが入っているのがSP1、入っていないのがSP1aです。

SP1を適用するとMicrosoft JavaVMが自動的に入ってしまう様です。

SP1aを適用してもMicrosoft JavaVMの有無は変更されませんので、既存の環境であれば、SP1a適用後もあり、既存の環境で無ければ、SP1a適用後も無い事になります。

詳しくはこちらをご確認してください。
http://support.microsoft.com/default.aspx?scid=kb;ja;813926

参考URL:http://support.microsoft.com/default.aspx?scid=kb;ja;813926


人気Q&Aランキング

おすすめ情報