脚本:
!/bin/bash
for((i=1;i<=10;i++));
do
echo $(expr $i * 3 + 1);
flag$i= ps -ef|grep zabbix
echo “============================flag$i=”$flag$i
done
现象:
./test1.sh: line 6: flag10=: command not found
+ echo ============================flag10=10
============================flag10=10
+ (( i++ ))
+ (( i<=10 ))
[root@localhost ~]# vi test1.sh
调整:增加flag变量中间倒腾一次就没有报错
!/bin/bash
flag_line=ps -ef|grep zabbix|wc -l
echo “——————flag_line=”
flaglinefor((i=1;i<=flagline;i++));doflag=”flag
f
l
a
g
l
i
n
e
f
o
r
(
(
i
=
1
;
i
<=
f
l
a
g
l
i
n
e
;
i
+
+
)
)
;
d
o
f
l
a
g
=
”
f
l
a
g
i”
echo $flag
flag=ps -ef|grep zabbix|sed -n $i"p"
echo “============================flag=”$flag
done
~
问题:
周知C等有编译器处理的程序会进行预编译,SHELL解析性则边解析边执行,以上报错笔者初步认为是该问题,求指教。