Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 每次运行脚本后,变量加1_Linux_Shell_Loops - Fatal编程技术网

Linux 每次运行脚本后,变量加1

Linux 每次运行脚本后,变量加1,linux,shell,loops,Linux,Shell,Loops,我想让变量在每次运行这个脚本时加上1。 例如,原始纺织品 //calcmarks,版本1,于2017年4月6日星期四20:50:54发布 在我运行脚本之后,我希望它成为 //calcmarks,第2版,发布于XXXXXXXXXXXX 然后 //calcmarks,第3版,发布于XXXXXXXXXXXXX 因此,我设置了一个变量$num,我不太明白这个问题与您发布的代码(在循环中增加一个变量)有什么关系,但是当您想要在脚本调用之间存储一个状态(这里是:版本号)时,您需要将该值存储在一个文件中 创建

我想让变量在每次运行这个脚本时加上1。 例如,原始纺织品

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

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

//calcmarks,第2版,发布于XXXXXXXXXXXX

然后

//calcmarks,第3版,发布于XXXXXXXXXXXXX


因此,我设置了一个变量$num

,我不太明白这个问题与您发布的代码(在循环中增加一个变量)有什么关系,但是当您想要在脚本调用之间存储一个状态(这里是:版本号)时,您需要将该值存储在一个文件中

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


虽然这并不重要,但其中包含一个棘手的方面:如果并行运行脚本的两个实例,那么在更新版本号时会有一个竞争条件。为了安全起见,你应该考虑文件锁定。

问题是:<文件>代码($L.GRP.C.$')< /代码>——这太疯狂了!代码>用于*.c中的文件;do…将
num=0
放在循环之前而不是循环中不是一个好主意吗?
ls
在这里显然是不必要的。它是一个外部命令,其输出专门由人读取,而不是由脚本解析。在bash中编程时避免使用,特别是循环。@Jens@Ashish K好的,我现在从你那里学到了。我很久没碰过这个地方了。它实际上是用来。。。在
ls
中,所以我认为它是正确的。
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