質問箱/9 - シェルプログラムの実行結果について


投稿者只見好き?
状態
投稿日2005-04-12 (火) 01:24:37

質問 Edit

シェルプログラム(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行を含むファイルです。

回答 Edit

  • それぞれの場合に得た結果はなんでしょうか?また sh date.sh のときに使用している sh はどれでしょうか?(which sh) 。とりあえず 2005-2-20 などは数値じゃないのに -ne でいいのかなぁとは思います。会津大学環境ないので自分はこれ以上言えないかも。他の人いない? -- s1080134 2005-04-12 (火) 05:31:46
  • ご回答ありがとうございます。先頭が#!/bin/shsh date.shを実行した場合の結果はHIDUKE-HENKOUが3行。先頭が#!/bin/shdate.shを実行した場合の結果はHIDUKE-HENKOUが1行。先頭が#!/bin/posix/shsh date.shを実行した場合の結果はHIDUKE-HENKOUが3行。先頭が#!/bin/posix/shdate.shを実行した場合の結果はHIDUKE-HENKOUが3行となります。 -- 只見好き? 2005-04-14 (木) 01:56:02
  • which sh の結果はなんですか?/bin/posix/sh かそれと同等のものっぽいですね。とりあえず自分の環境では -ne で引っかかりましたが、大丈夫なんでしょうか。そもそもそこがおかしいはずなのですが。期待している動作は HIDUKE-HENKO が3回ですよね。同じ環境があれば答えそのものをかけるかもですが、ヒントとなりそうなものぐらいしか・・・。他の人いない? -- s1080134 2005-04-14 (木) 13:35:01
  • which shの結果は/bin/shです。-neの部分は問題なく実行できました。両者が等しくないときthen以降が実行されます。期待する動作は4とおりとも HIDUKE-HENKO が3回です。 -- 只見好き? 2005-04-15 (金) 23:56:05
  • うーん、確かに意味不明ですね。在校生待ち*1。 -- s1080134 2005-04-16 (土) 09:56:58

URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White


*1 ここで待っても無駄な気がするけど
xrea