如何编写运行时会更新数字+1的Shell脚本?

问题描述

我想编写一个运行时回显数字的shell脚本

第一次./x 1

第二次./x 2

第三次./x 3

重启机器后

./ x 4

解决方法

一种方法是将最后一次运行保存到文件中,在这种情况下,将.persist文件保存在主目录中:

# Go into home directory to persist data.

cd "${HOME}"

# Get persisted data,make zero if empty/non-numeric/restart.

lastNum="$(cat .persist.dat 2> /dev/null)"
[[ -z "${lastNum}" ]] && lastNum=0
[[ "${lastNum}" =~ ^[1-9][0-9]*$ ]] || lastNum=0
[[ "$1" = "--restart" ]] && lastNum=0

# Add one,write to persistent file,and echo.

((lastNum += 1))
echo ${lastNum} > .persist.dat
echo ${lastNum}

如您所见,输出是一个递增的值:

pax:~> ./x
1
pax:~> ./x
2
pax:~> ./x
3
pax:~> ./x
4
pax:~> ./x
5
pax:~> ./x --restart
1

只要您不删除.persist文件(或对其进行修改,使其包含无效的整数),即使在重新启动后,该文件也应如实地工作。您会注意到我还添加了一个--restart标志,因此可以根据需要重新启动序列。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...