初心者です。
よろしくお願いします。

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'

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

A 回答 (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 …
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/05/27 00:33

こんばんは。



最初に、
#! /bin/sh

#! /bin/perl
#! /bin/ruby
#! /bin/python

が抜けているので、「OS」が何を使って作った「コマンド」を処理するのか分からなくて困っているようです。

この回答への補足

最初に「#! /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'

補足日時:2009/05/25 08:14
    • good
    • 0

このQ&Aに関連する人気のQ&A

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


人気Q&Aランキング

おすすめ情報