• ベストアンサー

if文の質問です

初心者です。 よろしくお願いします。 aaaという文字を売ったときにだけtrueを表示したいのですが、うまくいきません。 以下の<結果>のようになってしまいます。 どうしたらうまくいくのか例文を探しても載っていなかったので質問しました。 if [ $1 = "aaa" ] ; then echo true ; else echo false ; fi <結果> $ ./test.txt aaa ./test.txt: line 7: syntax error near unexpected token `fi' ./test.txt: line 7: `fi'

質問者が選んだベストアンサー

  • ベストアンサー
  • saru_
  • ベストアンサー率39% (38/97)
回答No.2

Windowsのメモ帳など、改行コードがCR-LRになるエディターで作成しているのが問題だと思われます。 私の環境(Win XP + Cygwin)で、回答#1の補足のコードを確認したところ、以下のような結果でした。 1) viで作成 →問題なく動作 2)メモ帳で作成 ./t2.sh: line 8: syntax error near unexpected token `fi' ./t2.sh: line 8: `fi' という訳で、ご自分の環境で改行コードがLFのエディターを使って編集すれば問題ないと思います。 (なんの話かピンとこない場合、周りの有識者に訊くか、参考サイトを利用して頑張ってください。)

参考URL:
http://www.rsch.tuis.ac.jp/~mizutani/online/with-pc/textline.html
flandre2
質問者

お礼

ありがとうございます。 terapadというのを使ってLFというのを設定したらできました!

その他の回答 (1)

  • kt1965
  • ベストアンサー率34% (116/339)
回答No.1

こんばんは。 最初に、 #! /bin/sh や #! /bin/perl #! /bin/ruby #! /bin/python が抜けているので、「OS」が何を使って作った「コマンド」を処理するのか分からなくて困っているようです。

flandre2
質問者

補足

最初に「#! /bin/sh」をつけてみてもこのように解決しませんでした。 何が悪いのかが分かりません。 #! /bin/sh if [ $1 = "aaa" ] ; then echo true ; else echo fales ; fi <結果> $ ./test.txt aaa ./test.txt: line 8: syntax error near unexpected token `fi' ./test.txt: line 8: `fi'

関連するQ&A