【发布时间】:2012-07-29 05:59:25
【问题描述】:
当我运行我的脚本时,我得到了这个错误:
234.sh: line 3: syntax error near unexpected token `do
234.sh: line 3: `for folder in $array ; do
我没有看到错误。帮忙?
#!/bin/bash
base=$(pwd)
array=`find * -type d`
for folder in $array ; do
cd $folder ;
grep -n $1 * | while read line ;
do name=$(echo "$line" | cut -f1 -d:) ;
if [ "$name" == "1234.sh" ]; then
continue ;
else
string=$(echo "$line" | cut -f2 -d:) ;
a=$(expr $string - 10)
if [ $a -lt 1 ] ; then
a=1 ;
fi ;
b=$(expr $string + 10) ;
echo "-----------------------"
echo $name:$a
sed -n $a,${b}p $name;
fi ;
done
cd $base ;
done
【问题讨论】:
-
去掉';'在“do”之前并将“do”放在换行符上
-
这不是必须的;用分号结束语句是合法的。
-
你的名为“array”的变量不是一个数组,它是一个字符串。