当前位置: 技术问答>linux和unix
一个shell数组的问题
来源: 互联网 发布时间:2016-08-01
本文导语: 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...
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
请大侠看下啊!谢谢!
{
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[@]里并没有少
之后你发现少一个-e 是因为第一个-e被echo当成参数介绍了 因为echo也有-e参数
其实array[@]里并没有少
|
所以你改成 echo "${array[@]}" 就会发现输出正常了