レス
元トピ次レス
タイトル
Re: 問題ID: 21870
フォーラム
最強WEB問題集LinuC/LPIC Lv1 102
投稿ユーザ(投稿日)
(2018/12/4)
本文
質問の意図がいまいちつかめないのですが…

-----引用(始)-----

ファイル1とファイル2が「=」の時、

ファイル1と2は違っているので
then [NG] になっていて、

イコールでないときは
elseで[OK]になっているのではないんでしょうか??

-----引用(終)-----

もしかして「条件式の評価」を誤解してませんか?
設問の正答の場合は
[code]
if test $STR1 != $STR2
then
echo "[NG]"
else
echo "[OK]"
fi
[/code]
となりますが、この場合1行目のtestによる評価は「変数STR1と変数STR2の内容が一致しなければ真(True)を返す」という意味になります。
1行目の条件評価の結果は、STR1とSTR2の文字列が一致しない(STR1は最後にENDがつく)ので「真」となります。そのため、then以降が実行され、else以降は実行されません。
これは解説にもありますが

-----引用(始)-----

if文は、条件文に記述されたコマンドの終了ステータスを条件分岐に使用します。条件文が真(0)の場合は実行文1、条件文が偽(0以外)の場合は実行文2を実行します。なお、実行文2を記述しない場合は「else」を省略できます。

-----引用(終)-----

ということです。

私が質問の意図を読み違えているようであれば、もう少し詳細を教えてもらってもいいですか?

レス一覧

元トピ次レス


Ping-tモバイルTOP

Copyright (c) 2010
Ping-t All rights reserved.