• 締切済み

Kshでエラー(no closing quote):原因わかりません

下記のようなファイル管理シェルをLinuxで作っているのですが、 test.sh[42]: no closing quote というエラーがでて解決できません。 何が原因なのでしょうか。どなたかご教授ください。宜しくお願い致します。 #!/bin/ksh #KAKUNIN_DATEから更新されているファイルをリスト KAKUNIN_DATE="10 Jul" #これを随時更新 TODAY=`date +"%x"` TODAY_YMD=`date +"%j"` START_YMD=`date --date="${KAKUNIN_DATE}" +"%j"` let n=TODAY_YMD-START_YMD #対象ディレクトリ CHK_DIR=$1 if [[ -d $CHK_DIR ]];then continue else echo "Not Dir:$CHK_DIR" exit fi #検索文字列 CHK_STR=$2 if [[ $CHK_STR = "" ]];then echo "Pls set check-string" exit fi #ファイル形式 NAME_STR=$3 if [[ $NAME_STR = "" ]];then echo "Pls set file type(if all then \"*\")" exit fi ######## メイン echo "-------------------------------------------------" echo "調査日:$TODAY 検索文字列:$CHK_STR 調査:$CHK_DIR 形式:$NAME_STR - $KAKUNIN_DATE から今日まで($n日内)に更新されたファイル" echo "ヒット,サイズ,更新日,ファイル名" find $CHK_DIR -name "$NAME_STR" -type f -mtime -$n -print| while read StrLine do if [[ `cat $StrLine | grep $CHK_STR` = "" ]];then echo `ls -l $StrLine | awk '{print 0","$5","$6,$7,$8","$9}'` else echo `ls -l $StrLine | awk '{print 1","$5","$6,$7,$8","$9}'` fi done

みんなの回答

  • ishi7474
  • ベストアンサー率32% (71/216)
回答No.2

do-doneブロックやif-fiブロックを一つずつコメントアウトして、どこが悪いか特定するしかないと思います。いちいち実行するのが面倒なら、「文法チェックだけする」シェルオプションを探しましょう。 あと自分の経験で言えば、#の直後に日本語を入れると挙動が怪しかったことがありました(#の後にスペースを1個以上入れてから日本語コメントを書き始めると正常に動作する)。

  • mtfoggy
  • ベストアンサー率14% (37/255)
回答No.1

>test.sh[42]: no closing quote >というエラーがでて解決できません。 >何が原因なのでしょうか。 エラーメッセージの通りです。

関連するQ&A