每次运行脚本后变量加1

时间:2017-04-06 12:41:31

标签: linux shell loops

for file in `ls |grep '\..$'`
do
num=0
while [ $num -lt 100 ]
num=`expr $num + 1`
sed -i "_bak" "s/\/\/.*version.*/\/\/calcmarks, version $num ,released `date "+%a %b %d %H:%M:%S %Z %Y"`/" "$file"
done

我想要的是每次运行此脚本时变量,变量加1。 例如,原始纺织品

// calcmarks,版本1,发布于2017年4月6日星期五20:50:54 AWST 2017

运行脚本后,我希望它成为

// calcmarks,version 2,发布xxxxxxxxxxxxx

然后

// calcmarks,版本3,发布xxxxxxxxxxxxxx

所以我设置了一个变量$ num

1 个答案:

答案 0 :(得分:1)

我不太清楚,这个问题是如何与您发布的代码(在循环中增加变量的位置)相关,但是当您想要存储状态(此处:版本号)时脚本调用,您需要将值存储在文件中。

创建文件$HOME/version,并将版本号存储在文件中。在每次调用时,读取文件的内容,增加变量,并将其写回文件。

虽然这很简单,但是包含一个棘手的方面:如果并行运行脚本的两个实例,则会遇到有关更新版本号的竞争条件。为了安全起见,您应该考虑文件锁定。