Diff of 質問箱/9


TITLE:質問箱/9 - シェルプログラムの実行結果について
#navi(質問箱)
//|~サマリ|シェルプログラムの実行結果について|
|~投稿者|[[只見好き]]|
|~状態|#listbox2(完了,質問,完了)|
|~投稿日|2005-04-12 (火) 01:24:37|

* 質問 [#lbc8319f]
#pre{{{
シェルプログラム(date.sh)
#!/bin/sh
s_date="0000-00-00"
while read data
do
    if [ ${data} -ne ${s_date} ]
    then
        echo "HIDUKE-HENKOU"
        s_date=${data}
    fi
done < date.log
を
sh date.sh
として実行した結果と
date.sh
として実行した結果が異なります。
1行目の#!/bin/shを#!/bin/posix/shとした
場合には同様の結果が得られます。
何故でしょうか。教えて下さい。
ここで、date.logは
2005-2-20
2005-2-21
2005-2-22
の3行を含むファイルです。
}}}
* 回答 [#j3ea0b86]
-それぞれの場合に得た結果はなんでしょうか?また sh date.sh のときに使用している sh はどれでしょうか?(which sh) 。とりあえず 2005-2-20 などは数値じゃないのに -ne でいいのかなぁとは思います。会津大学環境ないので自分はこれ以上言えないかも。他の人いない? -- [[s1080134]] &new{2005-04-12 (火) 05:31:46};
-ご回答ありがとうございます。先頭が#!/bin/shでsh date.shを実行した場合の結果はHIDUKE-HENKOUが3行。先頭が#!/bin/shでdate.shを実行した場合の結果はHIDUKE-HENKOUが1行。先頭が#!/bin/posix/shでsh date.shを実行した場合の結果はHIDUKE-HENKOUが3行。先頭が#!/bin/posix/shでdate.shを実行した場合の結果はHIDUKE-HENKOUが3行となります。 -- [[只見好き]] &new{2005-04-14 (木) 01:56:02};
-which sh の結果はなんですか?/bin/posix/sh かそれと同等のものっぽいですね。とりあえず自分の環境では -ne で引っかかりましたが、大丈夫なんでしょうか。そもそもそこがおかしいはずなのですが。期待している動作は HIDUKE-HENKO が3回ですよね。同じ環境があれば答えそのものをかけるかもですが、ヒントとなりそうなものぐらいしか・・・。他の人いない? -- [[s1080134]] &new{2005-04-14 (木) 13:35:01};
-which shの結果は/bin/shです。-neの部分は問題なく実行できました。両者が等しくないときthen以降が実行されます。期待する動作は4とおりとも HIDUKE-HENKO が3回です。 -- [[只見好き]] &new{2005-04-15 (金) 23:56:05};
-うーん、確かに意味不明ですね。在校生待ち((ここで待っても無駄な気がするけど))。 -- [[s1080134]] &new{2005-04-16 (土) 09:56:58};

#comment
#navi(質問箱,,footer,footer)
#navi(質問箱,,footer)
xrea