2

このスクリプトを実行するたびに検索部分が実行されますが、if ステートメントによって次のエラーが発生します。

./list_datasheets.csh: line 13: syntax error: unexpected end of file

これはスクリプトです:

find $1  -type d | while read -r dir
    do
    for f in ${dir}/*
    do
        echo ${f} | tr '[A-Z]' '[a-z]'
    done
done
if ($2 == "both") then 
    echo 'bye'
else
    echo 'hi'
endif
4

2 に答える 2

12

最後の行 ( endif) をに置き換えてみてください。これは、ステートメントfiを閉じるための正しいトークンです。if

($2 == "both")また、正しいに置き換えます[ $2 == "both" ]

ああ、それから、実際には次のifように書く必要があります。

   if [ "$2" == "both" ]; then
      echo 'bye'
   else
      echo 'hi'
   fi

$2の周りの引用符、前後のスペース、前後[のスペースに注意してください。];then

于 2012-05-03T12:52:08.617 に答える
2

ifブロックは ではfiなくで終了する必要がありendifます。

C および C++ でブロック#endifを閉じる方法に混乱したと思います。#if

于 2012-05-03T12:52:44.613 に答える