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

您需要以a和 not结束该if块。fiendif

我猜你对在 C 和 C++#endif中关闭块的方式感到困惑。#if

于 2012-05-03T12:52:44.613 回答