首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 服务器 > 其他服务器 >

一个shell数组的有关问题

2012-02-14 
一个shell数组的问题deleteConfigureItems(){declare -a arrayif [ $1$ItemStr1 ]thenfor BeginLine in `

一个shell数组的问题
deleteConfigureItems()
{
  declare -a array
if [ $1=$ItemStr1 ]
then
for BeginLine in `sed -n '/Number/=' $FileDirectory/$FileName`
do
EndLine=`expr $BeginLine + 2`
array[$BeginLine]="-e '${BeginLine},${EndLine} d' "
done
fi
 
echo ${array[@]}
  sed -e ${array[@]} $FileDirectory/$FileName
}
要批量删除文件中的Number,但是
echo ${array[@]}
的结果居然是:
'423,425 d' -e '483,485 d' -e '521,523 d' -e '589,591 d' -e '628,630 d' -e '678,680 d' -e '727,729 d' -e '762,764 d'

1.为什么前面烧少了一个"-e"
2.少了我就加一个吧?sed -e ${array[@]} $FileDirectory/$FileName
错误了,提示是:
Unrecognized command: -e

请大侠看下啊!谢谢!


[解决办法]
echo ${array[@]} 
之后你发现少一个-e 是因为第一个-e被echo当成参数介绍了 因为echo也有-e参数
其实array[@]里并没有少

[解决办法]

探讨
echo ${array[@]}
之后你发现少一个-e 是因为第一个-e被echo当成参数介绍了 因为echo也有-e参数
其实array[@]里并没有少

热点排行