shell编程中的for循环如何实现
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell编程中的for循环如何实现相关的知识,希望对你有一定的参考价值。
shell编程:
假设有个subscriber.txt文件,里面是一些我需要执行的内容,唯一的变化就是subscriberId; 我需要的subscriberId的区间是 001~100
现在我需要做一个脚本,假如已经存在一个函数:add -subscriber.txt ,可以通过这个函数每次添加一个subscriberId;
,我需要做的是,通过for循环,挨个把subscriberId替换掉,并全部添加;
请问如何实现,包括for循环如何实现,subscriberId如何更改等;多谢
还有几个补充问题:
1,for循环的格式不是 “for 变量名 in 列表”吗?
那这个地方的变量名和列表在脚本里 我该如何写
2,关于subscriber.txt这个文件,里面唯一变化的部分就是subscriberid, 是不是在这个文件中我用#SubscriberId# 替换subscriberid即可?
3,这句话能详细解释一下不,对sed命令太不熟悉了~
sed 's/subscriberId/'$i'/' sub>$i.txt
4,我一开始的想法是这样的形式,麻烦帮我看看如何修改一下:
add_all_subscriber()
file=subscriber.txt
if [ 100 -gt $ SubscriberId && 0 -lt $ SubscriberId ]; then
add_one_subscriber $a
a = $SubscriberId + 1
sed -e 's/Id/$a/' subscriber.txt >> subscriber_update.txt
mv subscriber.txt subscriber_update.txt
rm -rf subscriber.txt
mv subscriber_update.txt subscriber.txt
else
echo "completed"
fi
add_one_subscriber()
#ladd_id subscriber.txt #add_id 这是一个已知函数,直接调用即可
多谢了
add_all_subscriber()
file=subscriber.txt
for i in `seq 100`; do
SubscriberId = 0
a = $(($SubscriberId + $i))
add_one_subscriber $a
sed -e 's/Id/$a/' subscriber.txt >> subscriber_update.txt
done
mv subscriber.txt subscriber_update.txt
rm -rf subscriber.txt
mv subscriber_update.txt subscriber.txt
else
echo "completed"
fi
改成下面的内容试下 参考技术A #!/bin/sh
for((i=1;i<=100;i++))
sed 's/subscriberId/'$i'/' sub>$i.txt
以上是关于shell编程中的for循环如何实现的主要内容,如果未能解决你的问题,请参考以下文章