每当我运行此脚本时,find部分都会执行,但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
答案 0 :(得分:11)
尝试将最后一行(endif
)替换为fi
,这是关闭if
语句的正确令牌。
另外,请使用正确的($2 == "both")
替换[ $2 == "both" ]
。
哦,然后,实际上if
应写成:
if [ "$2" == "both" ]; then
echo 'bye'
else
echo 'hi'
fi
请注意$2
周围的引号,[
之后和]
之前的空格以及;
之前的then
。
答案 1 :(得分:2)
您需要使用if
而非fi
结束endif
阻止。
我猜你对在C和C ++中关闭#endif
块的#if
方式感到困惑。